Клиент попросил веб-искателя, который анализирует его сайт и генерирует CSV-файл с некоторой информацией с веб-сайта, но у меня проблемы с кодировкой.Кодировка кодировки Javascript
Я осмотрел страницу, и я вижу, что заголовок Content-Type
установлен в "text/html; charset=utf-8"
, а метатег для Content-Type
имеет то же значение.
Я использую простую конкатенацию для генерации результатов, как в CONTENT += line + '\r\n';
и, когда будут готовы, я подскажу загрузки файла:
var data = new Blob([CONTENT], { type: 'text/plain; charset=utf-8' });
saveAs(data, 'crawler.csv');
Я бы ожидать, что кодирование будет правильным, так как все содержимое использует UTF -8, но это не так, и я все равно получаю некорректное кодирование, как-то, как в RADIOFREQUÃNCIA
, где он должен читать RADIOFREQUÊNCIA
. В большинстве случаев акценты и диакритические знаки заменяются на Ã
.
Я пробовал использовать несколько методов кодирования/декодирования, но не имел никакого эффекта. У кого-нибудь есть рекомендации?
Отправляйте данные *, помеченные как физическое кодирование. * Настройка Content-Type на "foo/bar; charset = utf-8" не волшебным образом делает данные UTF-8. (Ваши наблюдения показывают, что вы действительно отправляете данные в виде 8-битной кодировки.) – Tomalak
Я не писал сайт, как я могу узнать, в какой кодировке он действительно находится? –
Вы можете смотреть только на байты, проходящие через провод, и сравнивать их с кодировками. Если заголовок Content-Type соответствует данным, все будет хорошо на стороне клиента самостоятельно, и вы ничего об этом не заметите. Если это не так ... то материал уже сломан на сервере, и на самом деле вы можете сделать это на клиенте. – Tomalak