Система FreeBSD 5.3, Apache-2.2.8, Perl-5.10.0, DBI-1.602, DBD-Pg-2.8.1, PostgreSQL-8.3.3Делаю такой запрос из cgi-скрипта (на Перле):
$sth1 = $dbh->prepare ("SELECT 'Всего', ROUND(SUM(bytes)/1024, 2), ROUND(SUM(bytes)/1024/1024, 2) FROM traffic WHERE date_part('month',date) = $month_chКодировка utf8
Вместо слова "всего" выводятся крякозябры, все уже испробывал:
база данных создана в кодировке UTF8;
переменные окружения ru_RU.UTF-8Ну не хочет кириллицу нормально показывать и все. Причем со всеми другими кодировками работает нормально. В UTF8 русский текст из самого скрипта в браузер отсылаются корректно, а вот в БД нет. Причем по логам видно, что Постгресу передаются уже кракозябры, т.е. скрипт передает БД кракозябры. Через EMS PostgreSQL Manager все происходит нормально
Проверьте что кодировка соединения с постгресом совпадает с кодировкой скрипта. Если используется utf8, то попробуйте добавить use utf8 в блоке со строкой запроса, возможно стоит вынести ее в отдельную переменную, ну и наконец может понадобится жестко указать наличие/отсутствие utf8 в переменной через utf8::upgrade($bytestring) and utf8::downgrade($utf8string)
>Проверьте что кодировка соединения с постгресом совпадает с кодировкой скрипта. Если используется
>utf8, то попробуйте добавить use utf8 в блоке со строкой запросаЯ просто в перл-скрипте объявил так: use utf8 и все заработало :)
Спасибо большое, знал же что дело не в СУБД, ибо через всякие менеджерыSQL кодировка корректная, именно perl-скрипт отсылал уже исковерканный текстСпасибо огромное еще раз :)
>>Проверьте что кодировка соединения с постгресом совпадает с кодировкой скрипта. Если используется
>>utf8, то попробуйте добавить use utf8 в блоке со строкой запроса
>
>Я просто в перл-скрипте объявил так: use utf8 и все заработало :)
>
>Спасибо большое, знал же что дело не в СУБД, ибо через всякие
>менеджерыSQL кодировка корректная, именно perl-скрипт отсылал уже исковерканный текст
>
>Спасибо огромное еще раз :)Т.е. написал вначале такое:
#! /usr/bin/perl -wuse strict;
use CGI qw/:all/;
use DBI;
use utf8;Клево, все работает :) Спасибо, Ангра :) Кстати, клевая группа "Angra" :)
Все-таки лучше use utf8 ограничивать небольшим блоком, а не ставить глобально на скрипт. Наталкивался при работе с базой, что в пределах одного скрипта он в одном месте нужен, а в другом мешает.
Мой ник к рок-группе Angra не имеет ни малейшего отношения, просто совпадение.
>Мой ник к рок-группе Angra не имеет ни малейшего отношения, просто совпадение.Есть подозрение что "Lavr" = "Angra". Судя по знаниям... :)