Отправляет email-рассылки с помощью сервиса Sendsay

[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>
Кто что скажет, идея не совсем лишена смысла? А то как-то лень экспериментировать
полностью наугад.
Успехов. Никита.

Ответить   Wed, 5 Dec 2012 15:15:52 +0400 (#2622714)

 

Ответы:

Приветствую всех.

причинам

Если это не связано с отсутствием шрифта, то (AFAIK) это происходит, если кодовые
наборы исходной страницы и подключаемого скрипта отличаются и charset скрипта
не указан.
Сюда же попадает случай, когда charset вообще не указан ни для основной страницы,
ни для подгружаемого скрипта и это не utf-8.
В любом случае это следствие того, как поисковик препарирует (или не препарирует)
страницу (точнее, javascript) перед кешированием.

Предположительно: Либо все писать в utf-8; либо добавить charset в script; либо
кодировать символы в unicode . (\uXXX).

Успехов. Анатолий.

Ответить   "i_chay" Thu, 6 Dec 2012 04:43:15 +0300 (#2623180)

 

Здравствуйте.
Дождался обновления индекса Google.
Действительно, конструкция типа
<script src="example.js" charset="windows-1251"></script>
решила все проблемы.
Так что если у кого-то в проектах используется вывод не ASCII символов через
JavaScript, проверьте этот нюанс с кодировками и явно пропишите кодовую
таблицу подключаемого скрипта.
Успехов. Никита.

Ответить   Sat, 15 Dec 2012 21:47:29 +0400 (#2631588)

 

Vande omentaina, Nikita!

посредством

то

*Не прошло и полгода...*
На самом деле, стандартом для JS (ибо для AJAX, в частности) de facto
является utf-8.
Поэтому твоё предложение не лишено смысла. Если ты (зачем-то) делаешь
сайт в Windows-1251, попробуй указать charset принудительно.
Если не поможет, будем копать, бо самому интересно стало.

Ответить   Tue, 29 Jan 2013 23:30:05 +0200 (#2664789)

 

Добрый вечер, Программисты/специальные! :)

У меня очередной гвоздь в мозгах.
Раньше проверял всё нормально, теперь шаблон посеял, нашёл в нете, а оно не работает.

.Code:
// Проверяем правильность введённого мыла:
function mail_correct($mail) {
if (! preg_match("|^[-0-9a-z_\.]+@[-0-9a-z_^\.]+\.[a-z]{2,6}$|i", $mail))
return ('Некорректный email.');
return('');
} // func.
.code.

Мне не нравятся вертикальные черточки "|". Я их меняю на слеши "/",
но результат всёравно один и тотже.
Parse error: syntax error, unexpected T_VARIABLE
Где у меня опять глюки?
Поможите пожалуйста.
Чем быстрее, тем лучше. :) Дело стоит.
Чуть не забыл: php5.

Ответить   Sat, 16 Feb 2013 22:21:17 +0400 (#2680633)