파일을 CSV 유형으로 저장할 때 Excel에서 기본적으로 BOM을 제거하는 이유를 찾기 위해 합리적인 해결책 / 설명을 찾으려고 노력했습니다.
이 질문 의 사본이 발견되면 용서해주십시오 . 이것은 ASCII가 아닌 인코딩으로 CSV 파일을 읽는 것을 처리하지만 파일을 다시 저장하는 것 (가장 큰 문제가있는 곳)은 다루지 않습니다.
다음은 현재 상황입니다 (유니 코드 문자 및 CSV 형식을 다루는 현지화 된 소프트웨어에서 공통적으로 수집 할 내용입니다).
BOM이 설정 (0xFFFE)되도록 UTF-16LE를 사용하여 데이터를 CSV 형식으로 내 보냅니다. 파일이 16 진 편집기로 생성 된 후 파일이 올바르게 설정되었는지 확인합니다.
Excel에서 파일을 열고 (이 예제에서는 일본어 문자를 내보내는 중) Excel에서 올바른 인코딩으로 파일로드를 처리하는 것을 목격합니다.
이 파일을 저장하려고하면 파일에 유니 코드 인코딩과 호환되지 않을 수있는 기능이 포함되어 있음을 나타내는 경고 메시지가 표시되지만 저장 여부를 묻습니다.
다른 이름으로 저장 대화 상자를 선택하면 파일을 CSV 대신 "유니 코드 텍스트"로 저장하라는 메시지가 즉시 표시됩니다. "CSV"확장자를 선택하고 파일을 저장하면 BOM이 제거됩니다 (모든 일본어 문자와 함께).
왜 이런 일이 일어날까요? 이 문제에 대한 해결책이 있습니까, 아니면 Excel의 알려진 '버그'/ 제한입니까?
또한 (부수 문제) UTF-16LE 인코딩 CSV 파일을로드 할 때 Excel은 TAB 구분 기호 만 사용하는 것으로 보입니다. 다시, 이것은 또 다른 알려진 '버그'/ Excel 제한입니까?