Javascript 내보내기 CSV 인코딩 utf-8 문제
javascript 배열을 CSV 파일로 내보내고 다운로드해야 합니다.I did it but 'ı,ü,ö,ğ,ş' this characters looks like 'ı ü à ğ ÅŸ' in the CSV file.이 사이트에서 추천하는 솔루션을 여러 번 시도해 봤지만 효과가 없었습니다.
코드 스니펫을 추가했는데, 이 문제를 해결할 수 있는 사람이 있나요?
var csvString = 'ı,ü,ö,ğ,ş';
var a = window.document.createElement('a');
a.setAttribute('href', 'data:text/csv; charset=utf-8,' + encodeURIComponent(csvString));
a.setAttribute('download', 'example.csv');
a.click();
이것은 어떤 프로그램이 오픈하고 있는가에 따라 달라집니다.example.csv
텍스트 편집기를 사용하여 인코딩은UTF-8
문자 형식이 잘못되지 않습니다.단, 을 사용하여Excel
디폴트 부호화CSV
이ANSI
가 아니라UTF-8
그래서 강요하지 않고Excel
사용 안 함ANSI
그렇지만UTF-8
인코딩으로 문자의 형식이 잘못되었습니다.
Excel
를 사용하여 강제할 수 있다UTF-8
위해서CSV
을 붙여서BOM
(바이트 순서 마크)를 파일의 첫 번째 문자로 지정합니다.디폴트BOM
위해서UTF-8
바이트 시퀀스입니다.0xEF,0xBB,0xBF
그래서 간단하게 생각할 수 있다."\xEF\xBB\xBF"
스트링의 첫 번째 바이트가 솔루션이 됩니다.하지만 너무 간단하지 않습니까?;-) 문제는 자바스크립트가 이러한 바이트를 문자로 받아들이지 않도록 강제하는 방법입니다."솔루션"은 "범용 BOM"을 사용하고 있습니다."\uFEFF"
특수문자(JavaScript)에 기재되어 있습니다.
예:
var csvString = 'ı,ü,ü,ğ,ş,#Hashtag,ä,ö';
var universalBOM = "\uFEFF";
var a = window.document.createElement('a');
a.setAttribute('href', 'data:text/csv; charset=utf-8,' + encodeURIComponent(universalBOM+csvString));
a.setAttribute('download', 'example.csv');
window.document.body.appendChild(a);
a.click();
문자열/블럽에 UTF-8 BOM 추가도 참조하십시오.
이것을 사용하면, 부호화가 올바르게 됩니다.단, 이는 콤마가 기본 목록 구분 기호일 경우에만 올바르게 작동합니다.Windows
로케일 설정.그렇지 않은 경우, 예를 들어 세미콜론이 기본 목록 구분 기호인 경우Windows
그러면 모든 내용이 쉼표로 구분되지 않고 첫 번째 열에 표시됩니다.그런 다음 세미콜론을 구분 기호로 사용해야 합니다.CSV
또한, 이것은 또 다른 문제이며, 그 결과, 이 시스템을 사용하지 않는 것으로 결론지어진다.CSV
직접 생성할 수 있는 라이브러리를 사용하는 것 이외에는Excel
파일(*.xls
또는*.xlsx
).
언급URL : https://stackoverflow.com/questions/42462764/javascript-export-csv-encoding-utf-8-issue
'programing' 카테고리의 다른 글
VB 코드에서 VBProject 보호 해제 (0) | 2023.04.11 |
---|---|
Bash에서 명령줄 인수를 변경하려면 어떻게 해야 합니까? (0) | 2023.04.11 |
git은 변경된 변경만 추가하고 추적되지 않은 파일은 무시합니다. (0) | 2023.04.11 |
HTML Anchor를 'name'으로 만들어야 하나요, 아니면 'id'로 만들어야 합니까? (0) | 2023.04.11 |
Excel VBA를 사용하여 값이 배열에 있는지 확인합니다. (0) | 2023.04.11 |