해외 지사 · CSV 인코딩 변환
해외 지사와 CSV를 주고받을 때 인코딩을 변환하는 방법
서울 본사에서 도쿄, 타이베이, 상하이, 마드리드 지사로 CSV를 보낼 때 국가 이름만 보고 인코딩을 정하면 안 됩니다. 송신 시스템의 내보내기와 수신 시스템의 가져오기 사양을 먼저 확인하고, 다국어 파일은 UTF-8을 우선합니다.
가정한 업무: 국내 레거시 CP949 파일을 글로벌 UTF-8로 전환
서울 ERP가 CP949로 내보낸 거래처 CSV를 싱가포르 지역 본부의 엑셀에 전달합니다. 수신팀이 UTF-8 BOM 포함을 지정했으므로 그 형식으로 변환합니다. 상대 시스템이 BOM 없는 UTF-8을 요구한다면 그 사양이 우선입니다.
| 인코딩 | 입력 CSV | 출력 CSV | 주요 용도·확인 사항 |
|---|---|---|---|
| UTF-8 | 자동 판정 또는 직접 지정 | BOM 포함·제외 선택 | 신규 다국어 공유의 우선 후보입니다. 수신 시스템의 BOM 요구 사항을 따릅니다. |
| CP949 | 직접 지정 | 지원 | 국내 레거시 시스템에서 쓰이는 예입니다. EUC-KR과 같다고 단정하지 않습니다. |
| Shift_JIS(CP932) | 자동 판정 또는 직접 지정 | 지원 | 일본 레거시 시스템에서 쓰이는 예입니다. CP932 고유 문자를 시험합니다. |
| Big5 | 직접 지정 | 지원 | 번체 중국어 레거시 시스템에서 쓰이는 예입니다. 사내 전용 문자를 시험합니다. |
| GB18030 | 직접 지정 | 지원 | 간체 중국어 레거시 시스템에서 쓰이는 예입니다. GBK 표기만으로 추정하지 않습니다. |
| Windows-1252 | 직접 지정 | 지원 | 서유럽 레거시 시스템에서 쓰이는 예입니다. €, 악센트, 따옴표를 확인하며 표현 불가 문자는 대체하지 않고 중지합니다. |
| ISO-8859-1 | 직접 지정 | 지원 | Latin-1을 명시한 레거시 시스템에서만 사용합니다. Windows-1252와 달리 0x80~0x9F는 제어 문자입니다. |
UTF-8
- 입력 CSV
- 자동 판정 또는 직접 지정
- 출력 CSV
- BOM 포함·제외 선택
- 주요 용도·확인 사항
- 신규 다국어 공유의 우선 후보입니다. 수신 시스템의 BOM 요구 사항을 따릅니다.
CP949
- 입력 CSV
- 직접 지정
- 출력 CSV
- 지원
- 주요 용도·확인 사항
- 국내 레거시 시스템에서 쓰이는 예입니다. EUC-KR과 같다고 단정하지 않습니다.
Shift_JIS(CP932)
- 입력 CSV
- 자동 판정 또는 직접 지정
- 출력 CSV
- 지원
- 주요 용도·확인 사항
- 일본 레거시 시스템에서 쓰이는 예입니다. CP932 고유 문자를 시험합니다.
Big5
- 입력 CSV
- 직접 지정
- 출력 CSV
- 지원
- 주요 용도·확인 사항
- 번체 중국어 레거시 시스템에서 쓰이는 예입니다. 사내 전용 문자를 시험합니다.
GB18030
- 입력 CSV
- 직접 지정
- 출력 CSV
- 지원
- 주요 용도·확인 사항
- 간체 중국어 레거시 시스템에서 쓰이는 예입니다. GBK 표기만으로 추정하지 않습니다.
Windows-1252
- 입력 CSV
- 직접 지정
- 출력 CSV
- 지원
- 주요 용도·확인 사항
- 서유럽 레거시 시스템에서 쓰이는 예입니다. €, 악센트, 따옴표를 확인하며 표현 불가 문자는 대체하지 않고 중지합니다.
ISO-8859-1
- 입력 CSV
- 직접 지정
- 출력 CSV
- 지원
- 주요 용도·확인 사항
- Latin-1을 명시한 레거시 시스템에서만 사용합니다. Windows-1252와 달리 0x80~0x9F는 제어 문자입니다.
입력 CSV 예시
원본을 덮어쓰지 말고 송신 시스템의 실제 내보내기 설정을 기록합니다. CP949 파일은 자동 판정 대상이 아니므로 직접 지정해야 합니다.
지사코드,회사명,담당자,도시,한도금액_KRW,갱신일
KR-SEL,한빛상사,김민서,서울,128000000,2026.07.31
KR-BUS,동해물류,박준호,부산,84500000,2026.07.31
KR-DAE,새봄유통,이서윤,대구,97600000,2026.07.31LocaCSV에서 인코딩을 변환하는 순서
- 수신 담당자에게 필요한 인코딩, BOM 포함 여부, 구분 기호를 확인합니다. 국가만으로 추정하지 않습니다.
- 문자 인코딩·형식 변환을 열고 50MiB 이하 CSV 한 개를 선택합니다.
- UTF-8·Shift_JIS는 자동 판정을 확인하고, ISO-8859-1·CP949·Big5·GB18030·Windows-1252는 송신 사양대로 직접 선택합니다.
- 미리 보기에서 한글 이름, 주소, 통화, 날짜, 열 경계를 확인하고 필요하면 입력 구분 기호를 바꿉니다.
- 합의한 출력 인코딩과 쉼표·세미콜론·탭·파이프 구분 기호를 선택합니다.
- 변환 후 데이터 행 수와 경고를 확인하고 수신 시스템 시험용 파일을 저장합니다.
인코딩·구분 기호·행 수 확인 방법
- 입력 데이터 행 수와 출력 데이터 행 수가 같음
- 김민서, 서울, 원화 금액 등 대표 값이 미리 보기에서 정상임
- 지사 코드의 앞자리 0, 금액 문자열, 날짜 형식이 바뀌지 않음
- 수신 시스템에서 합의한 구분 기호로 열이 분리됨
- 전체 전달 전에 소량 시험 파일로 BOM 설정까지 가져오기 성공을 확인함
변환 후 출력 예시
UTF-8 BOM 포함으로 바꿔도 보이는 셀 값과 열 순서는 변하지 않습니다. 파일 맨 앞의 BOM만 엑셀이 UTF-8을 식별하는 데 도움을 줍니다.
지사코드,회사명,담당자,도시,한도금액_KRW,갱신일
KR-SEL,한빛상사,김민서,서울,128000000,2026.07.31
KR-BUS,동해물류,박준호,부산,84500000,2026.07.31
KR-DAE,새봄유통,이서윤,대구,97600000,2026.07.31자주 발생하는 실수
- 한국 파일이라는 이유만으로 CP949를 선택합니다. 새 시스템이 UTF-8이면 UTF-8이 맞습니다.
- 자동 판정이 CP949까지 찾는다고 생각합니다. 자동은 UTF-8과 Shift_JIS만 판정합니다.
- 한글과 여러 언어가 섞인 CSV를 단일 지역 레거시 인코딩으로 변환합니다. 표현 불가 문자가 있으면 처리 중지됩니다.
- 깨진 상태로 엑셀에서 원본을 덮어써 원래 바이트를 잃습니다.
- 한 열로 보이는 현상을 한글 인코딩 문제로만 보고 실제 세미콜론·탭 구분 기호를 놓칩니다.
한 번 변환할 때와 자동화할 때
CSV 내용, 파일 이름, 헤더, 셀 값은 외부 API로 전송되지 않고 브라우저 안에서 처리됩니다. 원본과 변환본의 보관·전달 권한도 사내 규정에 맞춰 관리하세요.
- 적합: 50MiB 이하 CSV 한 개를 지원되는 8가지 출력 중 하나로 변환
- 적합: 변환 전 미리 보기와 표현 불가 문자 오류를 확인
- 부적합: UTF-16, EUC-JP, 임의 구분 기호, 줄바꿈 형식 선택
- 부적합: 수신 사양이 없는 상태에서 도구가 인코딩을 대신 결정하기를 기대