CSV 파일의 UTF8 인코딩 대 UTF8-Bom 인코딩의 Excel 저장 동작 파일은 UTF8-BOM으로 인코딩됩니다. Excel이 유니

내 원래 csv 파일은 UTF8-BOM으로 인코딩됩니다. Excel이 유니 코드 charcters를 인식 할 수 있도록합니다 (UTF8로 인코딩 한 다음 Excel에서 유니 코드 문자를 인식하지 못하는 경우).

내 문제는 UTF8로 인코딩 된 CSV 파일을 사용하면 Excel에서 저장을 클릭하면 원본 서식을 유지할 수있는 팝업 옵션이 제공된다는 것입니다. 그러나 파일이 UTF8-BOM으로 인코딩 된 경우 저장을 클릭하는 즉시이며 서식을 유지할 수있는 옵션이 없습니다. 그러면 CSV 파일에 쉼표가 탭으로 바뀝니다.



답변

다음과 같은 일이 발생합니다.

  1. Excel은 귀하의 시스템에서 지역 설정을 검토하여 귀하의 경우 쉼표로 구성된 목록 구분 기호를 찾으십시오. 여기에서 중요한 점은 CSV 잘 정의 된 단일 형식이 아닙니다. . 어떤 구분 기호를 사용할 수 … (편집 : 음, 실제로있다 지침 구분 기호는 쉼표로 구분되지만 바인딩 표준이 아니므로 지침을 엄격하게 준수하지 않아도됩니다.
  2. 그런 다음 Excel을 사용하여 메모리 내 데이터를 XLSX 파일로 변환합니다. 당신은 당신의 탁월한 일을합니다. 이것은 실제로 파일 형식 변환이며 Excel은 원본 파일의 인코딩이나 사용 된 구분 기호를 기억하지 않습니다.
  3. 캔지를 만들고 저장을 클릭하십시오. 그 순간에 Excel은 더 이상 CSV 파일이 아니라 XLSX 파일을 가지며이를 “CSV와 같은”것으로 다시 변환해야합니다. 인코딩은 BOM과 함께 UTF-8이어야한다는 것을 알고 있기 때문에 “유니 코드 텍스트”로 저장하도록 결정합니다 (명시 적으로 언급하지 않고이 작업을 수행함). 이 형식에서는 인코딩으로 BOM이있는 UCS-2 LE를 사용하고 구분 기호로 탭을 사용합니다. 이것은 사용자가 염두에두고있는 CSV 표준이나 원본 파일의 표준 형식이 아닙니다. 이상하고 반 직관적이긴하지만, 엄격히 말해서 틀린 것은 아닙니다.

그래서, 당신은 무엇을 할 수 있습니까?
이론적으로 CSV로 저장 옵션을 사용할 수 있어야하고 도구 -> 웹 옵션 메뉴 (다른 이름으로 저장 대화 상자에서)에서 인코딩을 UTF8로 설정할 수 있습니다. 여기서 유일한 문제는 이것이 제대로 작동하지 않는 것입니다. 제 생각에 그것은 고장난 기능입니다. 이것에 대한 자세한 내용은 스택 오버플로 : Excel에서 CSV로 UTF8 인코딩

그래서 너는 무엇을 할 수 있니? 진짜 해야 할 것?
UTF-8 BOM을 사용하고 저장하고 CSV 파일을 열어 모든 탭을 쉼표로 바꿉니다.

그리고 뭐 할까요 너 정말 그래?
Excel을 사용하여 CSV 파일을로드하고 편집하지 마십시오. 아니면 적어도 그것에 대해 더 조심해야합니다 …
왜 안돼?
나는 (너무 길다) 여기에 관한 기사 .


답변