메모장에서 ANSI에서 UTF-8로


25

ANSI로 인코딩 된 텍스트가 있습니다.

ANSI 텍스트 파일

메모장 ++ 메뉴 인코딩> UTF-8을 사용하여 UTF-8로 변환하려고하면 이상한 문자가 나타납니다.

UTF-8 텍스트 파일

UTF-8은 ANSI의 상위 집합이며 이후에는 그러한 문제가 없을 것이라고 생각했습니다. 어쨌든 그 이상한 캐릭터의 유령을 피할 수 있습니까?


나는 후자의 이미지에서 이상한 점을 보지 못합니다
phuclv

표시 할 수없는 문자를 의미했습니다. 이것을 피할 수있는 방법이 있습니까?
user3658425

질문을 편집 했습니까? 이미지가 반전 된 것 같습니다
phuclv

1
네, 죄송합니다. 누군가가 이미지를 추가 한 직후에 마지막 편집을 푸시하여 추가를 삭제했습니다. 다시 추가 할 수 있다면 좋을 것입니다!
user3658425

답변:


38

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

고맙습니다. 인코딩으로 문자셋을 망쳐 서 죄송합니다. 표시 할 수없는 문자를 피하고 대신 표시 할 수있는 따옴표를 사용하는 방법이 있습니까?
user3658425

@ user3658425 내 편집 내용을 참조하십시오
phuclv

1
또한 위의 ANSI / ASCII 정보를 편집했습니다
phuclv

3
일반적으로 "바이트 순서 표시가없는 UTF-8"이 원하는 것입니다. 다른 사람들이 과거에 말했듯이 "UTF-8은 유일 하게 유용한 문자열 인코딩입니다."
Riking

4
@WillihamTotland utf8everywhere.org
phuclv
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.