파일 인코딩 변환기(UTF-8 BOM 포함・Shift_JIS)
CSV나 텍스트 파일의 문자 인코딩을 변환합니다. UTF-8 파일에 BOM을 추가해 Excel에서 깨지지 않게 하거나 Shift_JIS로 변환할 수 있습니다. 모든 처리는 브라우저 안에서 이루어집니다.
용도별 권장 설정
어떤 인코딩으로 저장할지는 받는 쪽에 따라 정해집니다. 판단이 어려울 때의 기준입니다.
| 하려는 일 | 권장 설정 |
|---|---|
| UTF-8 CSV를 Excel에서 바로 열기 | UTF-8 + BOM 추가 |
| 오래된 업무 시스템・회계 프로그램에 가져오기 | Shift_JIS + CRLF |
| 프로그램(Python・PHP 등)으로 읽기 | UTF-8(BOM 없음) + LF |
| Mac용 Excel에서 열기 | UTF-8 + BOM 추가 |
| Google 스프레드시트로 가져오기 | UTF-8(BOM은 무관) |
| 오래된 메일 환경용 본문 준비 | JIS(ISO-2022-JP) |
인코딩별 특징
이 도구가 지원하는 인코딩과 선택 시 유의점입니다.
| 인코딩 | 특징 |
|---|---|
| UTF-8 | 현재의 표준으로 전 세계 문자와 이모지를 표현할 수 있습니다. |
| UTF-8(BOM 포함) | 파일 앞에 3바이트 표시를 붙여 Excel이 인코딩을 잘못 판단하지 않게 합니다. |
| Shift_JIS | Windows 일본어 환경에서 오래 쓰인 인코딩으로, 이모지와 일부 이체자를 표현할 수 없습니다. |
| EUC-JP | 주로 UNIX 계열에서 쓰인 일본어 인코딩입니다. |
| ISO-2022-JP(JIS) | 메일에 쓰여 온 인코딩으로, 반각 가타카나를 표현할 수 없습니다. |
CSV의 글자 깨짐은 왜 일어나는가
CSV를 Excel에서 열었을 때 글자가 무너지는 원인의 대부분은, 파일의 문자 코드와 Excel이 상정하는 문자 코드의 불일치입니다. Windows판 Excel은 CSV 파일에 아무런 표시가 없는 경우, 그 내용을 지역의 기존 문자 코드(일본어 환경이라면 Shift_JIS)라고 가정해 읽어 들입니다. 그런데 최근의 웹 서비스나 프로그램이 써 내는 CSV는 UTF-8인 경우가 많아, UTF-8의 바이트 열을 Shift_JIS로 해석한 결과 「譁�蟄怜喧縺�」 같은 무너진 문자열이 표시됩니다.
해결책은 두 가지입니다. 하나는 파일을 Shift_JIS로 변환하는 것, 다른 하나는 UTF-8 그대로 파일 첫머리에 BOM(Byte Order Mark, 3바이트의 표시)을 붙이는 것입니다. BOM이 있으면 Excel은 「이것은 UTF-8이다」라고 판단할 수 있으므로, 내용을 바꾸지 않고 글자 깨짐을 막을 수 있습니다. 이 도구는 어느 변환에도 대응하며, 원래 파일의 문자 코드는 자동으로 판정합니다. 처리는 모두 브라우저 안에서 이루어지므로 파일이 서버로 전송되는 일은 없습니다.
문자 코드 변환 사용 방법
- 파일을 고릅니다 CSV나 텍스트 파일을 드래그 앤 드롭하거나 클릭해서 선택합니다. 읽어 들이면 원래의 문자 코드와 줄바꿈 코드를 자동 판정합니다.
- 미리보기로 판정을 확인합니다 미리보기의 글자가 올바르게 읽히면 판정은 성공한 것입니다. 무너져 보이는 경우에는 텍스트 파일 이외를 고른 가능성이 있습니다.
- 변환할 대상을 고릅니다 Excel에서 열 것이라면 「UTF-8」+「BOM을 붙인다」, 오래된 업무 시스템에 넣을 것이라면 「Shift_JIS」를 고릅니다.
- 내려받습니다 「변환해서 내려받기」를 누르면 원래 파일명에 문자 코드의 접미사(_utf8bom·_sjis 등)를 붙인 파일이 저장됩니다.
더 잘 활용하기 위한 팁
- Excel에서 열기만 한다면 UTF-8에 BOM을 붙이는 방법이 가장 안전합니다. 본문 문자가 그대로 보존됩니다.
- Shift_JIS로 변환하면 표현할 수 없는 문자가 「?」로 바뀝니다. 이 도구는 사라질 문자를 먼저 알려 줍니다.
- 프로그램으로 읽는 파일에는 BOM을 붙이지 마세요. 첫 항목 이름에 섞여 들어가는 원인이 됩니다.
이런 때에 쓸 수 있습니다
웹 서비스에서 내보낸 CSV가 Excel에서 깨진다
매출 데이터나 회원 목록을 UTF-8로 내보내는 서비스가 많아, 그대로 Excel에서 열면 글자가 깨집니다. BOM을 붙이기만 하면 해결됩니다.
회계 소프트·급여 시스템에 넣을 수 없다
오래된 업무 시스템은 Shift_JIS의 CSV만 받는 경우가 있습니다. UTF-8 파일을 Shift_JIS로 변환해 넣을 수 있게 합니다.
BOM이 붙은 CSV를 프로그램으로 읽으면 첫 열이 이상하다
BOM은 보이지 않는 3바이트이므로 그대로 읽으면 첫 항목명에 섞여 들어갑니다. BOM을 뗀 UTF-8로 변환하면 해결됩니다.
줄바꿈 코드(CRLF/LF)의 차이로 한 줄로 취급되어 버린다
Mac에서 만든 LF 파일을 오래된 Windows 앱에서 열면, 줄바꿈이 무시되어 전체가 한 줄로 보일 수 있습니다. CRLF로 변환해 건네면 해결됩니다. 반대로 Windows에서 만든 CRLF 파일을 Unix 계열 명령에 통과시키면 줄 끝에 ^M이 남으므로, 그 경우에는 LF로 변환해 주세요.
깨진 파일의 내용을 확인하고 싶다
문자 코드를 자동 판정해 올바르게 다시 읽으므로, 열어도 읽을 수 없었던 파일의 내용을 미리보기로 확인할 수 있습니다.
문자 코드에 관한 용어
- 문자 코드(인코딩)
- 문자와 컴퓨터 내부의 바이트 열을 대응시키는 규칙입니다. 써 낼 때와 읽어 들일 때의 규칙이 다르면 글자 깨짐이 일어납니다.
- BOM
- Byte Order Mark의 약자로, 파일 첫머리에 두는 3바이트(EF BB BF)의 표시입니다. UTF-8임을 앱에 전하는 역할을 갖지만, 프로그램으로 읽는 경우에는 불필요한 문자로 취급될 수 있습니다.
- 줄바꿈 코드
- 줄의 끝을 나타내는 바이트입니다. Windows는 CRLF(2바이트), Mac·Linux는 LF(1바이트)를 쓰기 때문에, 환경을 넘나들면 한 줄로 보이거나 여분의 줄이 늘어납니다.
- Shift_JIS
- Windows의 일본어 환경에서 널리 쓰여 온 문자 코드입니다. 수록 문자 수가 UTF-8보다 적어, 이모지나 일부 이체자를 표현할 수 없습니다.
- 글자 깨짐(모지바케)
- 본래와 다른 문자 코드로 읽어 들인 결과, 의미를 이루지 못하는 문자가 늘어선 상태입니다. 「譁�蟄怜喧」 같은 배열은 UTF-8을 Shift_JIS로 읽었을 때의 전형적인 예입니다.
자주 묻는 질문
여담 ― 깨진 글자의 모양이 원인을 알려 줍니다
깨진 글자에는 알아볼 수 있는 규칙이 있습니다. 서로 관계없는 한자가 이어지는 것은 UTF-8 바이트를 Shift_JIS로 읽었을 때입니다. UTF-8에서 일본어 한 글자는 3바이트인데 이를 2바이트씩 다시 끊어 읽으면 전혀 다른 글자가 나오기 때문입니다. 반대로 Shift_JIS를 UTF-8로 읽으면 바이트 배열 자체가 유효하지 않아 대체 문자가 줄줄이 나타납니다.
BOM은 본래 UTF-16에서 바이트 순서를 나타내기 위해 만들어졌습니다. UTF-8에는 그런 모호함이 없어 Unicode 표준도 권장하지 않지만, 인코딩을 추측할 수밖에 없는 응용 프로그램에게는 명시적인 표시가 필요했기 때문에 Windows 환경에서 널리 남았습니다.