메모장에 영어가 아닌 텍스트가있는 텍스트 파일 을 저장하려고하면 유니 코드 중에서 선택할 수있는 옵션이 표시됩니다. 유니 코드 빅 엔디안 및 TF-8. 이러한 형식의 차이점은 무엇입니까?
내가 아니 이전 OS 버전 또는 앱과의 하위 호환성을 원하지 않는다고 가정하고 하지 않습니다 파일 크기에 신경 쓰는데, 어떤 형식이 더 낫습니까?
(텍스트는 다른 언어 외에도 중국어 또는 일본어와 같은 언어로되어 있다고 가정합니다.)
참고 : 아래 답변과 주석에서 메모장 용어에서 유니 코드는 UTF-16 (리틀 엔디안), 유니 코드 빅 엔디안은 UTF-16 (빅 엔디안), UTF-8은 잘 UTF 인 것 같습니다. -8.
Dunno. 톱이나 망치 중 어느 것이 더 낫습니까? :-)
기사에는 당면한 주제와 좀 더 관련이있는 내용이 있습니다.
"그 모든 0을보세요!" 그들은 미국인이기 때문에 U + 00FF 이상의 코드 포인트를 거의 사용하지 않는 영어 텍스트를보고 있다고 말했습니다. 또한 그들은 보존을 원했던 캘리포니아의 진보적 인 히피족이었습니다. 그들이 텍사스 사람이라면 바이트 수를 두 배로 늘리는 것은 신경 쓰지 않았을 것입니다. 하지만 캘리포니아의 겁쟁이들은 스트링에 필요한 스토리지 양을 두 배로 늘린다는 생각을 견딜 수 없었습니다.
UTF-32는 모든 문자에 4 바이트를 사용하여 완전성과 고정 길이 표현에 중점을 둡니다. 유니 코드 코드 포인트를 4 바이트로 직접 매핑하는 가장 간단한 번역입니다. 분명히 크기 효율적이지 않습니다.
UTF-16은 대부분 2 바이트를 사용하지만 BMP (Basic Multilingual Plane)에 포함되지 않은 특정 문자를 나타 내기 위해 문자 당 2 * 2 바이트로 확장되는 절충안입니다.
또한 참조 모든 소프트웨어 개발자는 절대적으로 유니 코드 및 문자 집합에 대해 반드시 알아야합니다 (변명 없음!)
유럽 언어의 경우 UTF-8이 더 작습니다. 동양 언어의 경우 그 차이는 분명하지 않습니다.
둘 다 가능한 모든 유니 코드 문자를 처리하므로 호환성에 차이가 없어야합니다.
생각보다 유니 코드 문자 인코딩이 더 많습니다.
UTF 8
UTF-8 인코딩은 1-4 바이트 범위의 가변 너비이며 각 바이트의 상위 비트는 제어 비트로 예약되어 있습니다. 첫 번째 바이트의 선행 비트는 해당 문자에 사용 된 총 바이트 수를 나타냅니다. 문자 코드 포인트의 스칼라 값은 비 제어 비트의 연결입니다. 이 표에서 x
는 유니 코드 값의 가장 낮은 8 비트를 나타내고 y
는 다음 상위 8 비트를 나타내고 z
는 그보다 높은 비트를 나타냅니다.
Unicode Byte1 Byte2 Byte3 Byte4
U+0000-U+007F 0xxxxxxx
U+0080-U+07FF 110yyyxx 10xxxxxx
U+0800-U+FFFF 1110yyyy 10yyyyxx 10xxxxxx
U+10000-U+10FFFF 11110zzz 10zzyyyy 10yyyyxx 10xxxxxx
"유니 코드"는 "UTF-16"의 또 다른 용어로, 유니 코드 문자 집합을 문자 당 16 비트로 인코딩합니다. UTF-8은 문자 당 8 비트로 인코딩합니다.
두 경우 모두 오버플로가 다른 16 비트 또는 8 비트에 할당됩니다.
텍스트 파일과 같은 작은 파일의 유일한 장점은 결과 파일 크기입니다. UTF-8은 일반적으로 더 작은 파일을 생성합니다. 그러나이 차이는 중국어/일본어 텍스트에서는 덜 두드러 질 수 있습니다.
Word에서 유니 코드는 문자 집합 이고 유니 코드 Big Endian과 utf-8은 두 개의 encodings , 컴퓨터에서 문자를 01로 저장하는 데 사용됩니다.