파일 인코딩 변환기(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이다」라고 판단할 수 있으므로, 내용을 바꾸지 않고 글자 깨짐을 막을 수 있습니다. 이 도구는 어느 변환에도 대응하며, 원래 파일의 문자 코드는 자동으로 판정합니다. 처리는 모두 브라우저 안에서 이루어지므로 파일이 서버로 전송되는 일은 없습니다.

문자 코드 변환 사용 방법

  1. 파일을 고릅니다 CSV나 텍스트 파일을 드래그 앤 드롭하거나 클릭해서 선택합니다. 읽어 들이면 원래의 문자 코드와 줄바꿈 코드를 자동 판정합니다.
  2. 미리보기로 판정을 확인합니다 미리보기의 글자가 올바르게 읽히면 판정은 성공한 것입니다. 무너져 보이는 경우에는 텍스트 파일 이외를 고른 가능성이 있습니다.
  3. 변환할 대상을 고릅니다 Excel에서 열 것이라면 「UTF-8」+「BOM을 붙인다」, 오래된 업무 시스템에 넣을 것이라면 「Shift_JIS」를 고릅니다.
  4. 내려받습니다 「변환해서 내려받기」를 누르면 원래 파일명에 문자 코드의 접미사(_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로 읽었을 때의 전형적인 예입니다.

자주 묻는 질문

받는 쪽이 Excel뿐이라면 BOM 포함 UTF-8을 선택해 주세요. 문자를 하나도 잃지 않고 깨짐을 막을 수 있습니다. Shift_JIS는 대상 시스템이 요구할 때만 필요합니다.

파일 맨 앞에 놓이는 3바이트(EF BB BF)입니다. 글자로 표시되지는 않지만 Excel 등이 이를 보고 UTF-8이라고 판단합니다.

아니요. 감지・변환・다운로드가 모두 브라우저 안에서 이루어지므로 파일 내용이 외부로 전송되지 않습니다.
툴군

여담 ― 깨진 글자의 모양이 원인을 알려 줍니다

깨진 글자에는 알아볼 수 있는 규칙이 있습니다. 서로 관계없는 한자가 이어지는 것은 UTF-8 바이트를 Shift_JIS로 읽었을 때입니다. UTF-8에서 일본어 한 글자는 3바이트인데 이를 2바이트씩 다시 끊어 읽으면 전혀 다른 글자가 나오기 때문입니다. 반대로 Shift_JIS를 UTF-8로 읽으면 바이트 배열 자체가 유효하지 않아 대체 문자가 줄줄이 나타납니다.

BOM은 본래 UTF-16에서 바이트 순서를 나타내기 위해 만들어졌습니다. UTF-8에는 그런 모호함이 없어 Unicode 표준도 권장하지 않지만, 인코딩을 추측할 수밖에 없는 응용 프로그램에게는 명시적인 표시가 필요했기 때문에 Windows 환경에서 널리 남았습니다.