콘텐츠로 건너뛰기

인코딩 테스트

UTF-8 (BOM 없음) · UTF-8 BOM 포함 · Shift_JIS · CP932 각 문자 코드의 CSV 테스트 파일을 무료 다운로드. 글자 깨짐 검증이나 임포트 테스트에.

UTF-8 (BOM 없음) 의 CSV 테스트 파일

utf8.csv / 659 B

UTF-8 (BOM 포함) 의 CSV 테스트 파일

utf8-bom.csv / 662 B

Shift_JIS 의 CSV 테스트 파일

sjis.csv / 514 B

CP932 (기종 의존 문자 포함) 의 CSV 테스트 파일

cp932.csv / 518 B

문자 인코딩 테스트의 중요성

일본어를 포함한 CSV는 인코딩 차이로 문자 깨짐이 자주 발생합니다. Excel에서는 BOM 포함 UTF-8이 권장되는 등 도구마다 대응이 다릅니다.

이러한 테스트 파일로 CSV 임포트 기능과 텍스트 처리 라이브러리가 각 인코딩을 올바르게 처리하는지 검증하세요.

주요 인코딩의 특징

📖 자주 걸리는 지점

같은 내용을 UTF-8 (BOM 있음 / 없음), Shift_JIS, CP932 등 여러 문자 코드로 써 낸 파일입니다. 읽는 쪽이 어느 것을 올바르게 다루는지 한 세트로 확인할 수 있습니다. 다만 깨지지 않았다는 것이 판정에 성공했다는 뜻은 아닙니다. 우연히 맞은 것일 수 있습니다.

사례 무슨 일이 일어나는가 어떻게 하면 되는가
Excel 로 열면 일본어가 깨진다 Excel 은 BOM 이 없는 UTF-8 CSV 를 OS 로케일 (일본어 Windows 라면 CP932) 로 읽습니다. 파일 자체는 올바르고 읽는 방법이 다를 뿐입니다. Excel 에 넘길 CSV 는 UTF-8 BOM 포함 (EF BB BF) 으로 써 냅니다. BOM 있음 / 없음 둘 다 이 목록에서 시험해 어느 쪽이 깨지는지 확인하세요.
Shift_JIS 인 줄 알았는데 CP932 였다 CP932 는 Shift_JIS 에 같은 기종 의존 문자를 더한 Microsoft 확장입니다. 엄격한 Shift_JIS 디코더는 거기서 예외를 던집니다. 일본어 Windows 가 내보내는 CSV 는 사실상 전부 CP932 라고 보고, 디코더도 CP932 (PHP 는 SJIS-win, Python 은 cp932) 를 지정합니다.
자동 판정에 맡겼더니 짧은 행에서 틀렸다 mb_detect_encoding 이나 chardet통계적인 추측입니다. 수십 바이트뿐인 행이나 ASCII 만인 행에서는 원리적으로 정할 수 없습니다. 가능하면 추측하게 하지 말고 사용자가 고르게 합니다. 이미 깨진 텍스트를 되돌리려면 문자 깨짐 복구에서 후보를 뽑아 고르는 편이 확실합니다.

잘못된 문자 코드로 읽기만 했다면 되돌릴 수 있지만, 그 상태로 다시 저장하면 되돌릴 수 없습니다. 대체 문자 (U+FFFD) 나 ? 가 된 시점에서 원래 바이트는 사라졌습니다. 가져오기 처리에서는 변환 전 원본 데이터를 어딘가에 남겨 두면 구제할 수 있습니다.