다른 명령
UTF-8과 UTF-16의 차이점
- UTF-8과 UTF-16은 모두 유니코드(Unicode) 문자 인코딩 방식
- 메모리 사용 방식과 호환성 측면에서 차이
차이점
구분 | UTF-8 | UTF-16 |
---|---|---|
인코딩 방식 | 1~4바이트 사용 (문자마다 다름) | 2바이트 또는 4바이트 사용 |
ASCII 문자 크기 | 1바이트 | 2바이트 |
한글/비라틴 문자 크기 | 3바이트 | 2바이트 |
이모지 크기 | 4바이트 | 4바이트 |
파일 크기 효율성 | 영어 등 라틴 문자에서는 효율적 | 비라틴 문자(한글, 중국어)에서는 효율적 |
ASCII와 호환성 | 완벽한 호환성 제공 | 호환되지 않음 |
BOM 필요 여부 | 선택적 | BOM 사용 권장 (엔디언 순서 명시) |
주요 사용 사례 | 웹 콘텐츠(HTML, JSON), 프로그래밍 언어 기본 인코딩 | Windows 운영체제 내부, Java, .NET 환경 |
장점 | 호환성 좋고 범용적 | 비라틴 문자에서 더 효율적 |
단점 | 비라틴 문자에서는 파일 크기 증가 | ASCII 문자 사용 시 비효율적 |
UTF-16 LE 와 BE 차이점
구분 | UTF-16 LE (Little Endian) | UTF-16 BE (Big Endian) |
---|---|---|
바이트 순서 | 낮은 바이트가 앞에 옴 (LSB 우선) | 높은 바이트가 앞에 옴 (MSB 우선) |
예시 (U+0041: 'A') | 41 00 | 00 41 |
BOM (Byte Order Mark) | FF FE | FE FF |
사용 환경 | Windows 환경에서 주로 사용 | 네트워크 프로토콜, 일부 시스템에서 사용 |
호환성 | BOM으로 엔디언 순서 파악 가능 | BOM 없이 순서 파악 어려움 |
장점 | Windows 및 일반 소프트웨어에서 호환성 좋음 | 네트워크와 다국어 프로토콜에서 적합 |
단점 | 네트워크 전송 시 비효율적 | BOM이 없으면 바이트 순서 문제 발생 |