ANSI로 인코딩 된 텍스트가 있습니다.
메모장 ++ 메뉴 인코딩> UTF-8을 사용하여 UTF-8로 변환하려고하면 이상한 문자가 나타납니다.
UTF-8은 ANSI의 상위 집합이며 이후에는 그러한 문제가 없을 것이라고 생각했습니다. 어쨌든 그 이상한 캐릭터의 유령을 피할 수 있습니까?
ANSI로 인코딩 된 텍스트가 있습니다.
메모장 ++ 메뉴 인코딩> UTF-8을 사용하여 UTF-8로 변환하려고하면 이상한 문자가 나타납니다.
UTF-8은 ANSI의 상위 집합이며 이후에는 그러한 문제가 없을 것이라고 생각했습니다. 어쨌든 그 이상한 캐릭터의 유령을 피할 수 있습니까?
답변:
UTF-8은 하지 문자셋, 유니 단지 인코딩. 처음 128자는 ASCII와 동일하지만 상위 128 바이트가 다릅니다. 높은 비트 세트 (또는> = 0x80)를 가진 바이트는 ASCII에서 확장 문자이며 UTF-8에서는 멀티 바이트 시퀀스의 시작 바이트를 나타냅니다. 위의 0x93 또는 0x94의 경우입니다. 그러나 파일에 이상한 것이 없습니다. 사람들은 스마트 따옴표 또는 MS Word와 같은 서식있는 텍스트 편집기를 사용할 때 자주 볼 개방과 폐점 따옴표에 대해 서로 다른 형태와 따옴표
질문이 수정되었습니다. 나는 당신이 잘못된 도구를 선택했기 때문이라고 생각합니다. encode
메뉴 항목은 잘못된 문자 표시가있는 경우 인코딩을 변경합니다. 디스크에서 읽은 동일한 바이트 시퀀스를 다른 인코딩으로 처리합니다. ASCII와 UTF-8이 다르기 때문에 잘못된 UTF-8 바이트 시퀀스가 있으며 위의 결과를 볼 수 있습니다. convert to UTF-8
전체 입력 바이트를 변경하려면 선택해야 합니다.
또한 ANSI와 ASCII를 혼동했습니다. ANSI는 종종 영어 Windows 및 일부 서유럽 언어에서 사용되는 문자 집합 인 Windows-1252를 나타냅니다. ISO 8859-1은 ANSI라고도하지만 ISO 8859-1의 상위 집합입니다. ISO 8859-1은 유니 코드의 첫 256 코드 포인트이기도하므로 유니 코드의 하위 세트이지만 UTF-8 인코딩과 호환되지 않습니다. ASCII는 7 비트 문자 집합이며 8 비트로 인코딩 된 ANSI의 하위 집합이지만 때로는 정확하지는 않지만 ANSI라고도합니다.
https://ko.wikipedia.org/wiki/ANSI_character_set
일반적으로 문자 집합 간의 관계는 다음과 같습니다.
ASCII < ISO 8859-1 < Windows-1252
^
Unicode