[prg] JavaScript: проблема с не ASCII-символами в document.write
Здравствуйте.
Обратил внимание, что в кэше Google не ASCII-символы, выводимые на страницу посредством
JavaScript методом document.write, почему-то отображаются прямоугольниками, то
есть значком U+FFFD. С ASCII, в то же время, всё в порядке. С кэшем же Яндекса
таких проблем вообще нет.
То есть получается, что в индекс Google данные, выводимые посредством JavaScript,
в корректной форме не попадают.
Есть ли у кого-нибудь из уважаемого сообщества какие-нибудь соображения по причинам
данной проблемы и путям её разрешения?
В таких тонкостях JS вообще не силён, поэтому интересно мнение специалистов.
Собственное предположение заключается в том, что Google по каким-то причинам
не хочет обрабатывать не ASCII без явной декларации кодировки.
В meta-теге самой страницы указана кодировка Windows 1251. Внешние JS-файлы тоже
сохранены в ней. Возможно имеет смысл при подключении скриптов также явно указать
их кодовую таблицу, что-нибудь вроде
<script src="example.js" charset="windows-1251"></script>
Кто что скажет, идея не совсем лишена смысла? А то как-то лень экспериментировать
полностью наугад.
Успехов. Никита.
Приветствую всех.
причинам
Если это не связано с отсутствием шрифта, то (AFAIK) это происходит, если кодовые
наборы исходной страницы и подключаемого скрипта отличаются и charset скрипта
не указан.
Сюда же попадает случай, когда charset вообще не указан ни для основной страницы,
ни для подгружаемого скрипта и это не utf-8.
В любом случае это следствие того, как поисковик препарирует (или не препарирует)
страницу (точнее, javascript) перед кешированием.
Предположительно: Либо все писать в utf-8; либо добавить charset в script; либо
кодировать символы в unicode . (\uXXX).
Успехов. Анатолий.