Javascript Экспорт данных CSV URI не отображает корейские символы - PullRequest
0 голосов
/ 17 февраля 2020

Я использую приведенный ниже код

 var uri = 'data:text/csv;charset=utf-8,\uFFFE' + escape(str);

Когда я нажимаю кнопку загрузки CSV в пользовательском интерфейсе, запускается вышеуказанный код и загружается CSV-файл.

Проблема заключается в том, когда я Откройте файл CSV, я вижу, что корейские символы не отображаются должным образом, и он отображается как "% uBC29% uAC08"

Вопросы

  • Как отобразить Корейские символы в CSV правильно.

1 Ответ

0 голосов
/ 17 февраля 2020

Код делает именно то, что вы запрограммировали:

var s = "방갈";
console.log(escape(s)); // %uBC29%uAC08

ОБНОВЛЕНИЕ

Рассмотрите возможность использования encodeURIComponent:

var s = "방갈";
console.log(encodeURIComponent(s)); // %EB%B0%A9%EA%B0%88

Это похоже на кодировку UTF-8 процентов.

Из документов:

escape ()

Предупреждение: хотя escape() не является строго устаревшим


… Программисты не должны использовать или предполагать существование этих функций и поведения при написании нового кода ECMAScript. …

- MDN JavaScript Ссылка - escape ()


UPDATE # 2

Рассмотреть возможность использования BLOB-объектов вместо данных Uris:

var blob = new Blob([s], { type: "text/csv;charset=utf-8" });
var uri =  URL.createObjectURL(blob); 

Откровенно говоря, данные Uris устарели.

Для получения дополнительной информации,

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...