gettext возвращает не ту кодировку (?)

Rynor

stay hungry
gettext возвращает не ту кодировку (?)

Уважаемые!

Где-то у меня вылез или очень простой или очень хитрый глюк. Внезапно %) данные от gettext начали выдаваться на страницах сайта в UTF-8.
То есть место "Новости" прёт "Рћ компании".
Раньше всё выдавалось в cp1251 (моя дефолтная кодировка для русского на сайтах).
Данные в .po и .mo как были, так и остались в utf-8 ("Content-Type: text/plain; charset=UTF-8\n").

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

Дефолтная локаль на серваке, само собой, UTF-8.
# locale
LANG=ru_RU.UTF-8
LC_CTYPE="ru_RU.UTF-8"
...
LC_IDENTIFICATION="ru_RU.UTF-8"
LC_ALL=

Установка локали в php:

PHP:
setlocale(LC_ALL, $main['nls_locale']);//ru_RU.UTF-8
putenv("LANG=" . $main['nls_locale']);
$s = bindtextdomain($main['nls_domain'], $main['nls_path']);
textdomain($main['nls_domain']);
Заранее благодарю за помощь телепатов и остальных участников PHPclub :)

ps Поздравляю любимый PHP форум с юбилеем!!! Рулите так же и впредь!!! :)
 

texrdcom

Новичок
Все просто тебе надо выставить для gettext выходную кодировку:
bind_textdomain_codeset('cp1251');
 

Rynor

stay hungry
Огромное спасибо, помогло. Правда, раньше всё и без этой функции работало, но это уже неважно :)
PHP:
bind_textdomain_codeset($domain, 'cp1251');
 
Сверху