WordPress плагин WP-Shortstat и кодировки

Прижился у меня в блогах на WordPress плагин WP-ShortStat. Официально он работает c WordPress до версии 2.7, последний релиз был в прошлом году. Так что пришлось самостоятельно устранять проблемы с кодировками. Заодно добавил поисковик mail.ru.

В PHP я почти ноль, всё делал методом тыка, если ошибся — поправьте, пожалуйста.

  • Яндекс и mail.ru иногда отдают текст русского запроса в кодировке windows-1251, а не utf-8. Нашел на форуме способ определения кодировки, который работает лучше, чем mb_detect_encoding. Добавил в класс wp_shortstat функцию преобразования кодировки запроса: query2utf8. Вызываю её только для Яндекса и mail.ru, хотя по идее надо бы для всех поисковиков. Но кодировка запросов Google почему-то не всегда определяется правильно.
  • Перенес в функцию sniffKeyword преобразование запроса в нижний регистр.
  • Перенс в функцию sniffKeyword перекодировку запроса в utf-8.

Теперь sniffKeyword возвращает полностью готовый к употреблению поисковый запрос — преобразованный к нижнему регистру, в utf-8. Русские буквы и отображаются, и сохраняются в базе правильно.
Осталась непонятная проблема с кириллической буквой ‘е’ — иногда вместо неё почему-то отображается ‘� �’.

Код для интересующихся. Основан на WP-Shortstat-1.15.

19.07.2010  Метки: ,   Рубрики: WordPress, Разработка

2 комментария

  1. temudun - 27.07.2010

    Спасибо!

  2. Markus Kämmerer - 15.02.2011

    Hi,if you send me a small diff with the changes I would like to review them and include them in the original wp-shortstat distribuation. thx.
    Markus

Написать комментарий