Forum Webscript.Ru
Программирование => Perl => Тема начата: Error202 от 26 Июля 2005, 13:52:17
-
Есть программа на Perl...
Она должна выдавать данные MySQL в кодировке utf-8...
В MySQLе есть несколько записей на русском...
MySQL по умолчанию имеет кодировку utf-8...
Почему данные отображаются скриптом как знаки вопросов?
-
use locale?
-
Где отображается?
Попробуй эту страницу прочесть как юникод Utf-8, может натолкнет на мысль...
-
Спасло
$dbh->do("SET character_set_results=\'utf8\'");
Правда теперь, при использовании
$text=substr($text,0,50);
Оставляет не 50 символов, а около 25 + последний какой-то кривой символ....
Можно ли как-нть подправить это?
-
посмотрите на модуль cyrillic. в нем есть конвертация вин то ютф и наоборот. в сочетании с
$dbh->do(\'SET NAMES utf8\') or die $DBI::errstr;
substr должен нормально работать. ;)
-
В том и засада, что нельзя использовать ни cyrillic, ни japanic, ни vietnamic...
Просто нужно чтобы программка оставалась рабочей при любых
языковых условиях...
Эта козлина воспринимает строку не как обычно, а каждый символ - 2 байта... В документации читал, что перл 5,8 нормально с юникодом...
Что делать не знаю...:(
-
Нашел решение:
Unicode::String
Всем спасибо...
-
use bytes ?
-
Снова проблема...
В форме поиска ввожу русский текст, ответ: не найдено
Теоретически должен найти, phpmyadmin по такому же запросу находит...
Страница выдана пользователю в нужной кодировке...
Может ли перл принять данные в другой кодировке, чем отправил браузер?
-
Справился... :)
Есть снова вопрос!
Страница генерируется из MySQL в кодировке UTF-8...
В тексте страницы вставляется ссылка
http://server.ru/cgi-bin/script.pl?id=1&text=Вася
Так вот, когда в браузере кликаешь на эту ссылку, он выдет ошибку 400 - неверный ввод...
Что можно сделать?
-
Error202, никогда не использовать русские буквы в урлах.
-
Почему? Ведь обычно нормально работает...
В данном случае этот "Вася" отправляется в UTF-8 и с этим ошибка...
Но все равно спасибо... Выкрутился...