Excel에서 파일을 CSV 형식으로 저장하면 항상 BOM이 제거됩니다.


15

파일을 CSV 유형으로 저장할 때 Excel에서 기본적으로 BOM을 제거하는 이유를 찾기 위해 합리적인 해결책 / 설명을 찾으려고 노력했습니다.

질문 의 사본이 발견되면 용서해주십시오 . 이것은 ASCII가 아닌 인코딩으로 CSV 파일을 읽는 것을 처리하지만 파일을 다시 저장하는 것 (가장 큰 문제가있는 곳)은 다루지 않습니다.

다음은 현재 상황입니다 (유니 코드 문자 및 CSV 형식을 다루는 현지화 된 소프트웨어에서 공통적으로 수집 할 내용입니다).

  • BOM이 설정 (0xFFFE)되도록 UTF-16LE를 사용하여 데이터를 CSV 형식으로 내 보냅니다. 파일이 16 진 편집기로 생성 된 후 파일이 올바르게 설정되었는지 확인합니다.

  • Excel에서 파일을 열고 (이 예제에서는 일본어 문자를 내보내는 중) Excel에서 올바른 인코딩으로 파일로드를 처리하는 것을 목격합니다.

  • 이 파일을 저장하려고하면 파일에 유니 코드 인코딩과 호환되지 않을 수있는 기능이 포함되어 있음을 나타내는 경고 메시지가 표시되지만 저장 여부를 묻습니다.

  • 다른 이름으로 저장 대화 상자를 선택하면 파일을 CSV 대신 "유니 코드 텍스트"로 저장하라는 메시지가 즉시 표시됩니다. "CSV"확장자를 선택하고 파일을 저장하면 BOM이 제거됩니다 (모든 일본어 문자와 함께).

왜 이런 일이 일어날까요? 이 문제에 대한 해결책이 있습니까, 아니면 Excel의 알려진 '버그'/ 제한입니까?

또한 (부수 문제) UTF-16LE 인코딩 CSV 파일을로드 할 때 Excel은 TAB 구분 기호 만 사용하는 것으로 보입니다. 다시, 이것은 또 다른 알려진 '버그'/ Excel 제한입니까?

답변:


6

"엑셀이 X를하는 이유는 무엇입니까?"와 같은 질문에 대한 정답은 없습니다.

"유니 코드 텍스트로 저장"을 표준 전송 형식으로 채택하지 않는 이유는 무엇입니까? Excel Save as는 BOM이 있고 TAB을 구분 기호로 사용하며 CSV와 같은 필드를 인용합니다 ...

그건 그렇고, 당신은 "CSV 확장자를 선택"하지 않습니다. 형식과 확장 중에서 두 가지를 선택할 수 있습니다. '파일 형식'상자에 유니 코드 텍스트로 저장을 시도하고 '파일 이름'상자에서 확장명을 csv로 수동 변경하십시오. 그런 다음 Excel을 종료하고 Windows 탐색기에서 파일 이름을 두 번 클릭하십시오. 잘 열립니다. 시도 해봐.

OP의 의견을 논의하기 위해 업데이트 :

  • "유니 코드 텍스트로 저장"(Excel 2007의 경우)은 항상 파일을 텍스트 확장명으로 저장합니다 (이전 또는 최신 버전에서는 말할 수 없음). 이것이 "Save as type"이라는 아이디어입니다.

=> 위에 쓴 내용을주의 깊게 읽고 스스로 시험해보십시오. 덮어 쓰지 않는 한 항상 파일을 TXT 확장자로 저장합니다 txt. '파일 이름'상자에서를 삭제 하고를 입력하십시오 csv.

  • "BOM이 있는지 확인하여 Excel 저장"을 명확히하려면 올바르지 않습니다.

=> " 유니 코드 텍스트 로 저장 "을 사용하면 파일 앞에 UTF-16LE BOM이 있습니다. 사용해보십시오.

  • 이것이 내가 처음에 질문을 한 이유입니다! 내 파일 인코딩이 UFT-16LE임을 나타 내기 위해 BOM이 포함 된 CSV 형식의 파일을 열고 Excel을 통해이 파일을 수정하면이 파일을 저장할 때 인코딩이 그대로 유지됩니다 ...

=> 입력 CSV 파일에 대한 정보가 Excel에 유지되지 않기 때문에 기대치가 충족되지 않습니다. 원하는 작업을 강제로 수행 할 방법이 없습니다. 그래서 당신은 내가 제안하는 것과 같은 것을 포기하거나 다른 것을 시도합니다.

  • 정말 좋은 점은 전에 이러한 문제를 경험 한 사람입니다. 통찰력을 제공하십시오.

=> 몇 년 전에 중국어 데이터와 Excel 1997에서 이러한 문제가 발생했습니다. 귀하의 질문에 대답하기 전에 Excel 2003 및 Excel 2007에서 Excel이 여전히 제대로 작동하지 않는지 확인했습니다. "유형 = 유니 코드 텍스트로 저장, 확장명 = CSV"해결 방법이 실제로 작동하는지 확인했습니다. 통찰력을 제공했습니다.


1
"유니 코드 텍스트로 저장"(Excel 2007의 경우)은 항상 파일을 텍스트 확장명으로 저장합니다 (이전 또는 최신 버전에서는 말할 수 없음). 이것이 바로 "유형으로 저장"이라는 아이디어입니다. "BOM이 있는지 확인하여"Excel 저장 "을 명확히하는 것은 올바르지 않습니다. 이것이 내가 처음에 질문을 한 이유입니다! 내 파일 인코딩이 UFT-16LE임을 나타내는 BOM이 포함 된 CSV 형식의 파일을 열고 Excel을 통해이 파일을 수정하면이 파일을 저장할 때 인코딩이 그대로 유지 될 것으로 예상됩니다. 정말 좋은 점은 누군가입니다. 이전에 이러한 문제를 경험 한 사람은 통찰력을 제공하십시오.
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.