(сценарии javascript / google) Как получить заголовок страницы, закодированный с помощью iso-8859-1, чтобы заголовок правильно отображался на моем веб-сайте utf-8?

Я прошу о помощи, потому что я действительно потратил часы (более 5) на поиск ответа в Интернете и не могу найти правильного решения.

Мой проект требует, чтобы я отбрасывал заголовки внешних веб-страниц, но иногда эти страницы имеют код iso-8859-1.

Поскольку отмененные заголовки отображаются в коде моей страницы в utf-8, я получаю � вместо таких символов, как é, à, ê, ô ...

Поэтому я должен найти способ иногда преобразовывать заголовки из iso-8859-1 в utf-8. Можешь мне помочь?

Я пишу скрипты с помощью скриптов Google, например Я пишу код на JavaScript для улучшения электронной таблицы Google с помощью предоставленного API.

Чтобы удалить внешние веб-страницы, я использую этот код:

var result = UrlFetchApp.fetch( url );
var wholePage = result.getContentText(); 
var scrap = wholePage.match( /<title>(.*?)<\/title>/ ); 
var title = scrap[1];

Он отлично работает, если уничтоженная страница закодирована в utf-8, но не для этого URL-адреса (в качестве примера): http://www.lexpress.fr/actualite/medias/cannes-pierre-lescure-et-jerome-clement-pressentis-pour-successder-a-gilles-jacob_1254608.html

Вот результат, который я получил на этом примере:

Канны: Pierre Lescure et J�r�me Clément Pressentis pour succéder � Gilles Jacob - L'EXPRESS

(да, я француз).

Может ли кто-нибудь помочь мне в этом? Буду очень признателен. Я попытался предоставить как можно больше информации, поскольку многие другие вопросы, связанные с проблемами кодирования в StackOverflow, не имеют реального контекста. Скажите, если вам нужно больше, я отвечу быстро.


person Gwendo    schedule 05.06.2013    source источник
comment
Проблема, похоже, в скрипте приложения Google. Я не знаком с этой технологией, может, поможет специальный тег?   -  person Denys Séguret    schedule 05.06.2013
comment
Хорошая идея, только что добавил тег. Спасибо!   -  person Gwendo    schedule 06.06.2013


Ответы (1)


Важнее то, где вы показываете контент. Если вы пишете его в электронную таблицу, вам необходимо изменить настройки электронной таблицы на правильный язык (французский). Кроме того, вы можете использовать расширенные параметры, чтобы указать, в какой кодировке находится исходный контент. Например,

var result = UrlFetchApp.fetch( url , {contentType : 'text/html; charset=utf-8'});
var wholePage = result.getContentText(); 
var scrap = wholePage.match( /<title>(.*?)<\/title>/ ); 
var title = scrap[1];
person Srik    schedule 06.06.2013
comment
Извини, Шрик, я только что нашел твой ответ; Думаю, я неправильно настроил параметры уведомлений, которые, я уверен, где-то предоставляет StackOverflow. Тем не менее, спасибо, так как я сделал уродливый обходной путь, и ваш вклад решил проблему. Я благодарен: благодаря вам я теперь лучше понимаю эти проблемы с кодировкой. - person Gwendo; 13.07.2013