ShiftJIS 파일에 대해 WinMerge를 실행하지만 인코딩 오류가 표시되는 경우 원인 확인 방법

개시하다


이 기사가 다루는 현상은 윈머지에만 국한된 것이 아니라 시프트 JIS와 CP932에 따라 발생한다. 나는 우연히 윈머지에서 만났을 뿐이기 때문에 때로는 다른 현상의 원인을 확인하는 데도 쓰일 수 있다.
하고 싶은 말이 있으면 문자 인코딩 문제는 정말 헛수고라는 얘기다.

참고 가치가 있는 보도


4@egg_chicken이하의 글은 매우 참고 가치가 있어 해결의 시작이 되었다.대단히 감사합니다
https://qiita.com/egg_chicken/items/53f1a5922487a572eaf4

무슨 일이 있었죠?


WinMerge를 사용하여 응용 프로그램이 출력한 CSV 파일(ShiftJIS)을 비교하려면 "인코딩 오류 정보로 인해 손실되었습니다."사용자가 문의했습니다. 오류가 발생했습니다.

※ 이미지는 WinMerge2입니다.12.420+jp-20의.

※ 2019년 2월 현재 최신 위머지2.위에서 설명한 대로 16.0.7에 있습니다.

왜 일어났어요?


WinMerge 이전 작업 병합


WinMerge는 인코딩을 정렬하기 위해 ShiftJIS(CP932)에서 파일을 열고 인코딩합니다.

예를 들어, WinMerge에 UTF-8 텍스트를 넣으면 텍스트가 텍스트로 아름답게 변하고 동일한 오류가 표시됩니다.

이는 위 오류 원인을 조사할 때 알았지만 플러그인 등을 사용하면 흡수할 수 있다.예를 들어 Excel 파일을 비교할 수 있습니다.

그럼 이번 상황은 어때요?


이러한 오류는 CP 932를 다시 여는 동안 인코딩에 실패하고 정보가 손실된 경우 표시됩니다.하지만 WinMerge는 어디에 있어야 할지 몰라요.
모두 코드가 흐트러지면 파일 전체의 인코딩에 따른 것임을 알 수 있지만, 이번 원본도 CP932와 동의한 ShiftJIS로 언뜻 보기에는 문제가 없는 파일이라 오류가 발생한 것 같다.
검색도 오피스 파일의 경우를 비교한 예만 있을 뿐 조사 과정에서 문자 코드 문제의 구렁텅이에 발을 디뎠다.

이번 원인은 ShiftJIS ≈ CP 932


이번에 WinMerge를 통한 파일은 ShiftJIS로 제작된 파일로, 언뜻 보기에도 WinMerge에 문제 없이 나타나 오류 문구처럼 인코딩 오류로 인한 정보 손실은 아닌 것으로 보인다.
다만, 벚꽃 편집기에서 이 파일을 열어 CP932에 저장했는데, 그 이유로 구워졌다.
※ 벚꽃 편집기뿐만 아니라 CP 932가 저장할 수 있는 편집기라면 확인할 수 있을 것 같은데, 이번에는 벚꽃 편집기에서 설명하겠습니다.

벚꽃 편집기에서 SJIS 파일을 CP932로 저장합니다.


저장 대화 상자에 코드 페이지(CP)의 인코딩 형식이 표시되지 않습니다.

SJIS에서 이번에 문제가 발생한 파일을 여러 차례 다시 저장했지만 WinMerge에서의 오류는 해결되지 않았지만 문자 코드 세트의 CP에서 검사한 결과 다음과 같은 CP 932를 선택할 수 있습니다.

그리고 CP932에 저장하면 WinMerge에서 욕먹은 내용과 같은 말을 듣게 된다.

하지만 WinMerge와 달리 이렇게 취소를 선택하면 원인이 있는 곳으로 건너뛸 수 있다.
그런 다음 해당 부분을 삭제하거나 원래 응용 프로그램을 수정하면 WinMerge의 오류도 제거할 수 있습니다.

총결산


4
  • WinMerge는 파일을 CP932(ShiftJIS)*로 변환하여 비교합니다

  • CP 932와 ShiftJIS는 ≈(근사 등)의 관계로 서로 변환하는 상황에서 때때로 정보가 부족할 수 있다
  • 4
  • 벚꽃 편집기에서 CP를 검사한 후 지정된 코드 페이지에서 문자 코드를 선택하여 저장할 수 있습니다
  • 좋은 웹페이지 즐겨찾기