내 원래 csv 파일은 UTF8-BOM으로 인코딩됩니다. Excel이 유니 코드 charcters를 인식 할 수 있도록합니다 (UTF8로 인코딩 한 다음 Excel에서 유니 코드 문자를 인식하지 못하는 경우).
내 문제는 UTF8로 인코딩 된 CSV 파일을 사용하면 Excel에서 저장을 클릭하면 원본 서식을 유지할 수있는 팝업 옵션이 제공된다는 것입니다. 그러나 파일이 UTF8-BOM으로 인코딩 된 경우 저장을 클릭하는 즉시이며 서식을 유지할 수있는 옵션이 없습니다. 그러면 CSV 파일에 쉼표가 탭으로 바뀝니다.
답변
다음과 같은 일이 발생합니다.
- Excel은 귀하의 시스템에서 지역 설정을 검토하여 귀하의 경우 쉼표로 구성된 목록 구분 기호를 찾으십시오. 여기에서 중요한 점은 CSV 잘 정의 된 단일 형식이 아닙니다. . 어떤 구분 기호를 사용할 수 … (편집 : 음, 실제로있다 지침 구분 기호는 쉼표로 구분되지만 바인딩 표준이 아니므로 지침을 엄격하게 준수하지 않아도됩니다.
- 그런 다음 Excel을 사용하여 메모리 내 데이터를 XLSX 파일로 변환합니다. 당신은 당신의 탁월한 일을합니다. 이것은 실제로 파일 형식 변환이며 Excel은 원본 파일의 인코딩이나 사용 된 구분 기호를 기억하지 않습니다.
- 캔지를 만들고 저장을 클릭하십시오. 그 순간에 Excel은 더 이상 CSV 파일이 아니라 XLSX 파일을 가지며이를 “CSV와 같은”것으로 다시 변환해야합니다. 인코딩은 BOM과 함께 UTF-8이어야한다는 것을 알고 있기 때문에 “유니 코드 텍스트”로 저장하도록 결정합니다 (명시 적으로 언급하지 않고이 작업을 수행함). 이 형식에서는 인코딩으로 BOM이있는 UCS-2 LE를 사용하고 구분 기호로 탭을 사용합니다. 이것은 사용자가 염두에두고있는 CSV 표준이나 원본 파일의 표준 형식이 아닙니다. 이상하고 반 직관적이긴하지만, 엄격히 말해서 틀린 것은 아닙니다.
그래서, 당신은 무엇을 할 수 있습니까?
이론적으로 CSV로 저장 옵션을 사용할 수 있어야하고 도구 -> 웹 옵션 메뉴 (다른 이름으로 저장 대화 상자에서)에서 인코딩을 UTF8로 설정할 수 있습니다. 여기서 유일한 문제는 이것이 제대로 작동하지 않는 것입니다. 제 생각에 그것은 고장난 기능입니다. 이것에 대한 자세한 내용은 스택 오버플로 : Excel에서 CSV로 UTF8 인코딩
그래서 너는 무엇을 할 수 있니? 진짜 해야 할 것?
UTF-8 BOM을 사용하고 저장하고 CSV 파일을 열어 모든 탭을 쉼표로 바꿉니다.
그리고 뭐 할까요 너 정말 그래?
Excel을 사용하여 CSV 파일을로드하고 편집하지 마십시오. 아니면 적어도 그것에 대해 더 조심해야합니다 …
왜 안돼?
나는 (너무 길다) 여기에 관한 기사 .