Проблема с кодировкой в CNStats

вторник, мая 5, 2009

Веб-программирование

cnstats-logoКаждый из нас пользуется какой-нибудь статистикой. Кто-то использует Google Analytics, кто-то разные готовые решения (тот же CNStats), кому-то хватает кнопочек-статистики от Bigmir, LI, etc. а кто-то вообще ею не пользуется. Не трудно догадаться, что использую я :)

Сразу после установки появилась проблема, проблема с кодировкой. Пытался решить её как ребёнок, закрыв глаза руками и сделав вид, что проблемы нет. Поменял ради этого язык интерфейса на английский. Но, чуда не произошло.

По умолчанию кодировка страницы была UTF-8, при английском языке KOI 8 или ISO8859 я не запомнил точно :). Что б увидеть русские буквы нужно было постоянно вручную менять кодировку на cp1251, что ничуть не радовало.

В общем, суть стала ясна почти сразу, глюки при работе с БД, а именно: скорее всего не явно указывается кодировка и она выставляется по умолчанию.

Решается просто, в файле добавляем 2 строчки

$STATS_CONF["sqlinstructions"][]=”SET NAMES cp1251?;

$STATS_CONF["sqlinstructions"][]=”SET CHARACTER SET cp1251?;

Вот и всё, после этого всё работает исправно, и я могу нормально смотреть по каким запросам ко мне приходят из поисковых машин. %) Надеюсь, эта маленькая история будет вам полезна.

Popularity: 27%

Читать также

, , ,

5 комментариев к этой статье

  1. rank написал:

    Решается просто, в файле добавляем 2 строчки
    в каком файле правки делать?

  2. Radamant написал:

    В config.php статистики

  3. igor23 написал:

    А если БД в utf-8 и надо смотреть статистику в Wordpress? Ставлю CNStats и плагин для Wordpress, вся выдача информации в кракозябрах. В чём косяк может быть?

  4. Radamant написал:

    Да в чём угодно… Кодировка значит гдето не та… В файлах плагина, вордпресса или БД… трудно сказать…

  5. Дммитрий написал:

    Народ кодировку можно поменять, но не полностью, обязательно останется кривым либо title страниц, либо поисковая фраза, моё решение простое и рабочее. Сделайте так чтобы все выводилось в кодировке cp1251, а для корректного отображения title, поправьте функцию _53a3229a() в functions.php.

    function _53a3229a($_2b36786b,$_7fc45f1d=false)
    {
    if(!$_7fc45f1d) {
    $_2b36786b=mb_convert_encoding($_2b36786b, “cp1251″, “UTF-8″);
    } else {
    $_2b36786b=mb_convert_encoding($_2b36786b, “cp1251″, “UTF-8″);
    }
    return $_2b36786b;
    }

    Удачи! На 4.2 работает без проблем.

Оставить комментарий

Before you submit form: