인코딩·문자셋
인코딩을 지정해 깨진 CSV 다시 읽기
사용할 도구
.csv 확장자가 문자 인코딩을 정하지는 않습니다. 만든 앱과 여는 앱의 가정이 다르면 같은 바이트가 다른 글자로 보입니다. 깨진 화면을 저장하면 근거를 덮을 수 있으므로 원본을 먼저 보존하세요.
문자셋 도구는 명시한 방식으로 문자→바이트 또는 바이트→문자를 변환하며 원래 인코딩을 자동 감정하지 않습니다. あ 한 글자로 이해한 뒤 실제 파일에 같은 판단 순서를 적용합니다.
あ의 바이트는 인코딩마다 다릅니다
UTF-8 e38182
UTF-16LE 4230
UTF-16BE 3042
Windows-31J 82a0あ를 입력하고 인코딩을 바꾸면 네 결과가 나옵니다. 글자는 같고 바이트 값·길이가 다릅니다. 16진수는 저장·전송 표현이지 다른 읽기 불가 문자가 아닙니다. 복사할 때 인코딩도 기록하세요.
같은 방식으로 되돌리기
e38182는 UTF-8, 82a0은 Windows-31J로 읽으면 あ입니다. UTF-16 바이트 순서도 규칙 일부이며 4230은 LE·BE에서 뜻이 다릅니다. 둘을 혼용하지 말고 송수신 방식을 맞추세요.
왕복 성공은 그 예를 처리함을 확인할 뿐 전체 파일의 원래 인코딩을 유일하게 증명하지 않습니다. ASCII만 있으면 여러 방식에서 정상처럼 보입니다. 비ASCII·기호·줄바꿈과 생성 측 내보내기 명세도 확인하세요.
디코딩 오류는 정보를 지키는 단서
잘못된 바이트를 대체 문자로 조용히 바꾸지 않고 오류로 냅니다. e381은 UTF-8 e38182의 마지막 바이트가 빠진 예입니다. 오류는 선택 인코딩 오류나 입력 손실 모두 가능하므로 둘 다 조사하세요.
오류가 없다고 맞는 해석은 아닙니다. 다른 인코딩도 우연히 유효하게 읽을 수 있습니다. 예상 단어·기호·건수·생성 측 명세를 보세요. 무언가 보이는 것보다 기대 내용을 보존하는 것이 중요합니다.
이미 ?·�로 바뀐 문자는 잃었을 수 있습니다
표시만 잘못 읽었다면 원래 바이트를 올바르게 다시 읽을 수 있습니다. 하지만 ?·�로 대체해 저장했다면 다른 원문이 같은 대체 문자로 합쳐졌을 수 있습니다. 그 저장 문자열만으로 원래 값을 유일하게 복원할 수 없습니다.
손상 텍스트를 반복 변환하기보다 원본 내보내기·백업을 찾으세요. 깨진 화면 복사와 원래 바이트 제공은 다릅니다. 어떤 근거인지 밝히고 원본 대신 별도 사본으로 작업하세요.
Shift_JIS 이름만으로 호환성을 판단하지 않기
지원은 UTF-8·UTF-16LE·UTF-16BE·WHATWG shift_jis에 따른 Windows-31J 매핑입니다. 옛 JIS나 같은 이름을 쓰는 모든 제품과 완전히 같다는 뜻은 아닙니다. 문제 기호·확장 문자를 수신 앱에서도 시험하세요.
Windows-31J에 없는 😀 같은 문자는 ?로 몰래 바꾸지 않고 실패합니다. 수신 측이 해당 인코딩만 받으면 허용 문자 정책·인터페이스 변경·명시적 대체 표기를 합의해야 합니다. 의미에 관한 결정을 도구가 조용히 해서는 안 됩니다.
디코딩이 맞아도 CSV 구조는 별도 확인
문자가 정상이라면 CSV 편집기로 행·열을 확인하세요. 구분자·따옴표 내 줄바꿈·선행 0·빈 문자열은 별개입니다. 스프레드시트가 표시를 고치면서 ID를 숫자로 바꿀 수도 있으니 대표 기록을 대조하세요.
재발 방지는 교환 명세에 인코딩·BOM·줄바꿈·CSV 구분자를 적는 것입니다. 도구 인코딩 출력은 16진수 텍스트이므로 화면을 저장한다고 업무용 파일이 완성되지는 않습니다. 최종 표현·가져오기 절차는 수신 앱 명세로 확인하세요.
글자가 읽혀도 파일 전달 검증은 끝나지 않습니다
깨진 CSV를 다룰 때는 스프레드시트로 열고 다시 저장하기 전 원본 바이트를 보존하세요. 잘못 해석한 뒤 저장하면 문자가 물음표로 바뀌거나 앞자리 0이 사라져 인코딩 외의 문제도 생깁니다. 원본을 계속 덮어쓰지 말고 같은 원본에서 후보를 시험하세요. 다른 방식으로 다시 읽는 것과 다른 인코딩으로 저장하는 것을 나누면 정보가 바뀐 단계를 찾기 쉽습니다.
영문과 숫자만 있는 줄이 잘 보인다는 것은 강한 증거가 아닙니다. 여러 인코딩이 그 바이트를 똑같이 읽기 때문입니다. 실제 파일의 비ASCII 문자와 기호를 보되 몇 글자만 읽힌다고 전체가 맞다고 단정하지 마세요. 가능하면 내보내기 설정이나 제공자의 명세를 확인하고 추정한 인코딩은 추정이라고 기록하세요.
글자가 읽히면 행과 열 수, 따옴표 안의 줄바꿈, 빈 필드의 의미를 확인하세요. 디코딩 성공이 같은 CSV 데이터의 복원을 보장하지는 않습니다. 인코딩, 구분자, 줄바꿈, 열 자료형을 함께 전달해야 재현할 수 있습니다. 도구가 인코딩 바이트를 16진수로 출력한 경우 그 문자열 자체를 업무용 CSV로 저장하지 않도록 주의하세요.