작업중 인 파일에서 찾은 이상한 캐릭터를 식별하려고합니다.
$ cat file
�
$ od file
0000000 005353
0000002
$ od -c file
0000000 353 \n
0000002
$ od -x file
0000000 0aeb
0000002
파일이 ISO-8859 인코딩을 사용하고 있으며 UTF-8로 변환 할 수 없습니다 :
$ iconv -f ISO-8859 -t UTF-8 file
iconv: conversion from `ISO-8859' is not supported
Try `iconv --help' or `iconv --usage' for more information.
$ iconv -t UTF-8 file
iconv: illegal input sequence at position 0
$ file file
file: ISO-8859 text
내 주요 질문은 어떻게 od
여기 의 결과를 해석 할 수 있습니까? 내가 사용하려고 이 페이지 나 다른 문자 표현 사이에 변환 할 수 있습니다, 그러나 하더군요 005353
는 "16 진수 코드 포인트는"있는 그대로 卓
않는 오른쪽 보이지 0aeb
않는 "진수 코드 포인트"로 ૫
, 이는 다시, 잘못된 것 같습니다 .
그럼, 어떻게 내가 세 가지 옵션 중 하나를 사용하여 (수 355
, 005353
또는 0aeb
그들이 대표로되어있는 것을 문자 알아)?
그리고 네, 유니 코드 도구를 사용해 보았지만 유효한 UTF 문자가 아닌 것 같습니다.
$ uniprops $(cat file)
U+FFFD ‹�› \N{REPLACEMENT CHARACTER}
\pS \p{So}
All Any Assigned Common Zyyy So S Gr_Base Grapheme_Base Graph X_POSIX_Graph
GrBase Other_Symbol Print X_POSIX_Print Symbol Specials Unicode
유니 코드 U + FFFD 문자에 대한 설명을 이해하면 실제 문자가 아니며 손상된 문자의 자리 표시자가 아닙니다. 파일이 실제로 UTF-8로 인코딩되지 않았으므로 의미가 있습니다.
ë
다른 프로그램에서 데이터를 사용할 때 볼 수 있습니다! 하지만 어떻게 알 수 있습니까? 내가 제공하는 데이터의 어딘가에 있지 않습니까? 어떻게 찾았 어? 아, 나는 시도했다 iconv
으로 -f ISO-8859
하지만 불평 conversion from
supported`되지 않은 'ISO-8859.
eb
하고 무시 해야한다는 것을 알았습니다 0x
. 이런 종류의 일에 대한 나의 무지가 깊습니다. @StephenKitt를 설명하는 답변을 게시 할 수 있습니까?
iconv
은 성공했을 것입니다. 및 / 또는 예를 들어 Wikipedia에서 찾아 볼 수 있습니다. 이 매우 특정한 인코딩의 경우 fileformat.info/info/unicode/char/00eb/index.htm 도 작동합니다 (유니 코드는 128-255 범위의 ISO-8859-1과 동일하지만 UTF 인코딩은 호환되지 않습니다) ).
iconv
소스 문자 세트를 지정하지 않았기 때문에 불평하므로 기본값 인 UTF-8을 사용합니다.)