UTF-8과 UTF-16의 차이점

Anonim

UTF-8 대 UTF-16

UTF는 유니 코드 변환 형식을 나타냅니다. 유니 코드 문자 집합을 동등한 이진 값으로 인코딩하는 표준 제품군입니다. UTF는 사용자가 최소한의 공간으로 문자를 인코딩하는 표준화 된 수단을 갖도록 개발되었습니다. UTF-8 및 UTF 16은 인코딩을위한 확립 된 표준 중 두 가지입니다. 각 문자를 인코딩하는 데 사용되는 바이트 수만 다릅니다. 두 가지 모두 가변 폭 인코딩이므로 최대 4 바이트를 사용하여 데이터를 인코딩 할 수 있지만 UTF-8은 1 바이트 (8 비트) 만 사용하고 UTF-16은 2 바이트 (16 비트)를 사용합니다. 이는 인코딩 된 파일의 결과 크기에 커다란 영향을줍니다. ASCII 문자 만 사용하는 경우 UTF-16으로 인코딩 된 파일의 크기는 UTF-8로 인코딩 된 파일의 대략 두 배입니다.

UTF-8의 가장 큰 장점은 ASCII와 역 호환이 가능하다는 것입니다. ASCII 문자 세트는 고정 폭이며 1 바이트 만 사용합니다. ASCII 문자 만 UTF-8로 사용하는 파일을 인코딩 할 때 결과 파일은 ASCII로 인코딩 된 파일과 동일합니다. UTF-16을 사용할 때 각 문자는 2 바이트 길이이므로이 작업은 불가능합니다. 유니 코드를 인식하지 못하는 레거시 소프트웨어는 ASCII 문자 만있는 경우에도 UTF-16 파일을 열 수 없습니다.

UTF-8은 바이트 지향 형식이므로 바이트 지향 네트워크 또는 파일에 문제가 없습니다. 한편, UTF-16은 바이트 중심이 아니므로 바이트 지향 네트워크를 사용하기 위해 바이트 순서를 설정해야합니다. UTF-8은 손상되지 않은 다음 바이트를 여전히 디코딩 할 수 있기 때문에 파일 또는 스트림의 손상된 부분에서 복구하는 것이 더 좋습니다. UTF-16은 일부 바이트가 손상되었지만 일부 바이트가 손실 될 때 문제가있는 경우 똑같은 작업을 수행합니다. 손실 된 바이트는 다음 바이트 조합을 혼합 할 수 있으며 최종 결과가 왜곡됩니다.

요약:

1. UTF-8 및 UTF-16은 모두 문자 인코딩에 사용됩니다.

2. UTF-8은 문자를 인코딩 할 때 최소 바이트를 사용하지만 UTF-16은 두 개의

3을 사용합니다. UTF-8로 인코딩 된 파일은 UTF-16으로 인코딩 된 파일

4보다 작습니다. UTF-8은 ASCII와 호환되지만 UTF-16은 ASCII

와 호환되지 않습니다. UTF-8은 바이트 지향이며 UTF-16은

가 아닙니다. UTF-8은 UTF-16에 비해 오류를 복구하는 데 더 좋습니다.