2011-03-11 15 views
6

오늘 고객에게서 읽어야하는 파일을 받았지만 이상한 문자가 포함되어 있습니다. 알려진 이름을 사용하여 일부 문자의 의미를 추측 할 수 있습니다. 예를 들어어떤 코드 페이지가 '?'로 인코딩됩니까? (0x3f 0xba)

: 나는 (닷넷에 알려진) 모든 코드 페이지를 시도

Realname | Encoded as | sign | hex 
----------|--------------|-------|------- 
Françios | Fran?ºios | ç  | 3f ba 
André  | Andr??  | é  | 3f 3f 
Hélène | H??l?¿ne  | è  | 3f bf 
etc. 
  • 파일을 가져, 그들은 내가 알고있는 단어가 포함되어 있는지 확인합니다. 그러나 코드 페이지가 만족스럽지 않습니다.
  • 메모장에서 파일을 열면 ++는 ANSI라고 생각하고 원하지 않는 문자도 표시합니다. (하지만 16 진수 편집기 플러그인이 유용합니다.)
  • 다른 사용자 (동일 사용자 & zip 파일)의 다른 파일은 UTF-8로 인코딩됩니다.
  • 내가에서 파일을받은 사람에서

, 나는 도움을 기대할 수 없다. (Google 번역을 사용하여) 그는 파일을 만드는 것이 매우 어려웠다 고 분명히 말했고 액세스 권한이없는 소프트웨어 (저는 SAP라고 생각합니다)를 사용하고 있습니다.

나는 그가 단지 나에게 보낼 파일의 인코딩을 찾을 수있는 다른 방법이 있습니까?

+0

whats does not have notepad ++ is the file? 오른쪽 하단 모서리에 올려다 보아라. UNICODE, ANSI, UTF-8 및 char-set은 무엇입니까? – balexandre

+0

메모장 ++는 ANSI를 생각합니다. 하지만 ansi는 7F 이상의 문자를 포함하지 않습니다 (나는 들었다). ba & bf는 확실히 더 큽니다. – GvS

+1

음, UTF-8이 아닙니다! –

답변

6

UTF-8 인코딩 된 텍스트를 사용하여 CP850 인 것처럼 가장 한 다음 Latin-1, Windows-1252 또는 유사한 인코딩으로 변환하면 결과를 얻을 수 있습니다. "?" 0xc3의 CP850 문자가 Latin-1 또는 파생 된 인코딩에 존재하지 않는 "├"이므로 변환이 "?"로 바뀝니다.


편집 : 나는 약간의 iconv를 사용하여 검색의 넓은, 그리고 CP437, CP862, 또는 CP865는 CP850보다 더 나은 경기입니다했다. 당신이 물어봤을 때, 이번에 사용한 한 줄은 다음과 같습니다 :

for enc in `iconv -l`; do echo -n "$enc: "; echo -n "ç é è" | iconv -s -f $enc -t "LATIN1//TRANSLIT" 2>/dev/null; echo; done 
+0

이 전환은 어떻게 했습니까? 작은 응용 프로그램을 작성하거나 일부 소프트웨어를 사용하고 있습니까? – GvS

+0

"mb_list_encodings"에 의해 나열된 모든 인코딩에서 UTF-8로 변환 될 때 "º"와 관련된 결과를 얻을 수있는 것을 찾기 위해 "ç"에서 mb_convert_encoding을 수행 한 빠른 PHP 스크립트를 함께 작성했습니다. 그것은 CP850에 나를 가리켰다, 그리고, 나는 그 "?" 아마도 Latin-1 로의 변환이나 유니 코드보다 제한적인 다른 인코딩에서 발생했을 것입니다. CP850에서 Latin1까지는 완벽한 답이 아니지만 "é"는 "??"대신 "?"로 표시됩니다. – Anomie

1

UTF-8 또는 UTF-16이어야합니다. 거의 모든 일반 문자가 포함되어 있습니다. 디코딩/인코딩 문제가있는 것 같습니다.

메모장 ++ 파일은 바이트 순서 마크를 사용하지 않기 때문에 그것은 어쩌면, 혼란.

어떻게 파일을 처리하나요?

바이너리로 읽은 다음 다른 인코딩을 시도하여 문자열을 가져 오십시오. 바이너리로 읽지 않으면 기본 인코딩이 수행 될 수 있습니다.

"?" 그 표시입니다.

that 일 수 있습니다.

+0

.Net에 알려진 모든 코드 페이지를 시도했습니다. 더 이상 있는지 궁금합니다. – GvS

관련 문제