Странные символы на сайте WordPress: причины и решения

23 июл. 2012 г., 05:03:11
Просмотры: 18.3K
Голосов: 3

Похоже, многие пользователи жалуются, что видят только случайные буквы и символы:

Скриншот с проблемой отображения иероглифов на сайте WordPress

Моя главная проблема в том, что я не могу воспроизвести эту ошибку НИ НА ОДНОМ из своих устройств! Ни на ноутбуке с Windows XP, ни на Windows 7, ни на Android-телефоне или iPod Touch. Не важно, какой браузер я использую. Единственный раз, когда я сам вижу проблему - это когда пытаюсь поделиться записью из блога в Google+, потому что описание блога тогда отображается странными символами.

Итак, прежде всего мне нужно найти способ как-то воспроизвести эту проблему. Иначе я не смогу проверить, исправляет ли мои действия проблему или нет.

Я сделал всё, что рекомендовал @toscho, но ничего не помогло.

Сталкивался ли кто-то с подобной проблемой или может подсказать, где искать её причину?

Обновление: Я связался со своим хостинг-провайдером. Они тоже не смогли воспроизвести проблему, как и я. Они сказали, что у них включено gzip-сжатие на серверах. Они предложили отключать плагины по одному, чтобы посмотреть что произойдёт, но так как я не могу воспроизвести проблему, я не могу этого сделать. Пожалуйста, помогите!

Всё больше читателей жалуются на эту проблему. Большинству достаточно обновить страницу или подождать несколько минут, и сайт загружается нормально, но из-за этого я всё равно теряю много трафика.

ОБНОВЛЕНИЕ 2: В FAQ плагина W3 Total Cache сказано: Я вижу мусорные символы вместо нормального сайта, что происходит?

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

Я почти уверен, что в моём коде нет таких вызовов, но не на 100%. Есть ли способ это проверить, кроме как искать среди миллионов символов во всех моих файлах?

5
Комментарии

Игнорируйте разметку, она важна только при сохранении страницы в локальную файловую систему или когда сервер не отправляет правильный HTTP-заголовок. Ссылка на страницу, где это происходит, могла бы помочь.

fuxia fuxia
23 июл. 2012 г. 08:36:35

Вы отправляете контент в gzip-сжатии, но gzip-файл невалиден. Отключите gzip-сжатие и добавьте в свой вопрос детали о том, как вы его включили.

fuxia fuxia
23 июл. 2012 г. 09:14:30

Хм, похоже, что контент сжат gzip дважды. Смотрите это обсуждение для похожей ситуации.

fuxia fuxia
23 июл. 2012 г. 09:20:27

Я использую плагин под названием "W3 Total Cache". В этом плагине я отключил следующую опцию: "Включить HTTP-сжатие (gzip)". Не могли бы вы проверить, сохраняется ли упомянутая вами проблема? Спасибо.

japanworm japanworm
23 июл. 2012 г. 09:34:09

Теперь всё работает как ожидалось. Я напишу ответ с более подробными объяснениями...

fuxia fuxia
23 июл. 2012 г. 09:38:16
Все ответы на вопрос 3
8

Начнем с вывода, который мы получили до исправления:

Исходное состояние до исправления

Что здесь произошло? Моё предположение: конфликт между плагином W3 Total Cache и вашим веб-сервером LiteSpeed. Я нашел обсуждение на форуме Drupal о очень похожей (или той же самой) проблеме.

Похоже, LiteSpeed не отправляет корректные HTTP-заголовки для сжатых файлов кэша, которые хранит W3TC. В его журнале изменений для версии 0.9.2.4 W3TC указано:

Исправлена поддержка веб-сервера LiteSpeed

Таким образом, проблема известна, и обновление должно её исправить.

Если обновление не помогло...

  • Обратитесь к вашему хостинг-провайдеру. Вы платите за поддержку, и никто не знает внутренности лучше них.
  • Или добавьте...

    AddType application/x-gzip .gz .tgz
    AddEncoding x-gzip .gz .tgz
    

    ...в ваш .htaccess, чтобы проверить, поможет ли это.

  • Или отключите gzip-сжатие в W3TC. Это последний вариант, если все остальные подходы не сработали.

Чтобы проверить результаты, не полагайтесь на вывод браузера. Все браузеры используют разные обходные пути для исправления некорректного сжатия, с этим нельзя работать. Используйте инструменты вроде GIDZipTest, чтобы убедиться, что всё в порядке.

23 июл. 2012 г. 09:51:49
Комментарии

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

japanworm japanworm
23 июл. 2012 г. 09:58:47

Куда мне нужно вставить этот сниппет кода в мой .htaccess файл, чтобы он заработал? Я просто добавил его в самый конец, но это не дало никакого эффекта. Вот как сейчас выглядит мой .htaccess файл: http://pastebin.com/j0qDqBUV

japanworm japanworm
23 июл. 2012 г. 10:44:03

Не должно иметь значения. Попробуйте другое: Удалите строку AddOutputFilterByType DEFLATE …

fuxia fuxia
23 июл. 2012 г. 10:46:44

Я сделал. Спасибо. Не уверен, что это исправило проблему. DIDZipTest работает, но в IE я всё ещё вижу странные символы.

japanworm japanworm
23 июл. 2012 г. 10:59:40

Возможно, проблема с локальным кешем в IE? После очистки кеша браузера сайт заработал нормально.

fuxia fuxia
23 июл. 2012 г. 11:05:53

Похоже, это исправило проблему, потому что теперь у меня тоже сайт загружается корректно. Большое спасибо!

japanworm japanworm
23 июл. 2012 г. 11:12:03

Столкнулся с этой проблемой сегодня утром. Спасибо за помощь! +1

KJYe.Name KJYe.Name
5 окт. 2012 г. 16:16:08

Проблема, кажется, сохраняется: http://wordpress.stackexchange.com/questions/67773/feedburner-doesnt-work-anymore Но я не могу воспроизвести проблему самостоятельно. Есть еще идеи, что можно сделать?

japanworm japanworm
11 окт. 2012 г. 06:18:49
Показать остальные 3 комментариев
0

Это произошло потому, что у меня было два плагина, которые пытались сжимать вывод с помощью GZip. Отключение второго плагина решило проблему.

7 мар. 2013 г. 01:34:02
9

Всегда указывайте кодировку, используемую для HTML или XML страницы. Если этого не сделать, символы в вашем контенте могут быть некорректно интерпретированы. Проверьте ваш header-файл, чтобы указать английский язык и настройки UTF-8. Вот что находится в моем header:

<html xmlns="http://www.w3.org/1999/xhtml" dir="ltr" lang="en-US">
<head profile="http://gmpg.org/xfn/11">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
23 июл. 2012 г. 05:33:02
Комментарии

Алия, спасибо! Я думал, что уже указал это (см. мой отредактированный вопрос с фрагментом кода), хотя там требуется некоторое действие, возможно, лучше заменить его на то, что используете вы? Я изначально изменил его, потому что мне также нужно отображать японские символы, а также английские и немецкие.

japanworm japanworm
23 июл. 2012 г. 05:45:02

И, кстати, @toscho здесь эксперт. Я сам не знаю, о чем говорю, лол. Не в той степени, в которой, уверен, знает tosho.

Androliyah Androliyah
23 июл. 2012 г. 08:51:23

@japanworm, я посетил ваш сайт и не заметил ничего странного. Он очень милый. :)

Androliyah Androliyah
23 июл. 2012 г. 08:56:16

Спасибо! Я проверил ещё раз и увидел, что сниппет в моём заголовке уже был в родительской теме, но это не значит, что он без ошибок. Надеюсь, у "toscho" есть хорошая идея. Если нет, я попробую ваш вариант и посмотрю, что получится. И большое спасибо за приятный комплимент! :)

japanworm japanworm
23 июл. 2012 г. 09:07:14

@japan, у нас большая проблемо. Я только что зашёл на ваш сайт в двух разных браузерах и вижу только страницу с кучей странных символов. Ваш сайт вообще не отображается. Это не проблема браузера. Должно быть, какой-то код ломает ваш сайт. Не уверен, имеет ли это значение, но вы скопировали и вставили мой заголовок вместо вашего, полностью заменив его? А пока я разберусь и скоро отпишусь.

Androliyah Androliyah
23 июл. 2012 г. 09:30:40

Вы используете плагин кеширования? Я рассматриваю плагин кеширования как основного подозреваемого. Возможно, я ошибаюсь (я сам не использую плагины кеширования), но в прошлом они вызывали проблемы, даже такие простые, как неправильное отображение CSS.

Androliyah Androliyah
23 июл. 2012 г. 09:40:48

Да, это действительно большая проблема! :( Поэтому я хочу как можно скорее разобраться, как её исправить! Огромное спасибо! Я вообще ничего не менял. Да, я использую плагин кеширования. Я его сейчас отключу, можете проверить, сохраняется ли проблема?

japanworm japanworm
23 июл. 2012 г. 09:49:27

@japanworm - пока рано говорить, что проблема устранена окончательно, потому что сначала ваш сайт работал нормально, потом внезапно сломался, а затем снова заработал. Так что для мониторинга вам нужно будет оставить плагин выключенным на некоторое время, чтобы увидеть, повторится ли проблема. А пока сайт снова отображается нормально. Я бы также порекомендовал вам связаться с tosho. Он профи.

Androliyah Androliyah
23 июл. 2012 г. 09:55:31

Я только что вернулся и перечитал некоторые свои комментарии, где называл toscho профессионалом, затем посмотрел, сколько у него репутации/очков, и не смог сдержать смеха от мысли, что у меня никогда не будет столько лол. В любом случае, я рад, что у вас всё работает! Ваш сайт просто очарователен :-D

Androliyah Androliyah
23 июл. 2012 г. 11:49:18
Показать остальные 4 комментариев