| imho.ws |
![]() |
|
|
|
# 1 |
|
::VIP::
Регистрация: 15.05.2005
Адрес: Питер
Сообщения: 1 194
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Проблема с кодировкой
Ситуация такая - сервер на Fedora, дефолтовая кодировка utf, скрипты написаны в нем, т.е. с кодировкой utf, в скриптах идет обращение к базе и выборка из нее элементов, причем кодировка базы либо Windows-1251, либо koi8-r (базы на разных серваках), в итоге хтмл страничка не отображает правильно данные, вытащенные из базы, кодировка страницы соответственно utf. Пытался делать SET CLIENT_ENCODING TO UTF8 в базе (да, кстати, база Postgres), но это не помогает, но если ,например, база на windows-1251, а я делаю SET CLIENT_ENCODING TO KOI8-R, а потом в скрипте $element = iconv('KOI8-R', 'UTF-8', $element), то все отображается нормально
Помогите решить проблему (писать везде iconv - не решение, слишком много того, где что-то выводится )Спасибо.
__________________
Чтобы воля стала действующим началом, тело должно быть совершенным. |
|
|
|
|
# 3 | |
|
::VIP::
Регистрация: 15.05.2005
Адрес: Питер
Сообщения: 1 194
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Цитата:
проблема в том, что на выходе с сервера к клиенту, вроде получается страница половина которой на utf (это текст который в самом скрипте), а половина в другой кодировке (это данные, которые из базы берутся), и то, что написано все преобразует правильно?Хм, или это к базе Mysql? Проверил на постгресе - не подходит...
__________________
Чтобы воля стала действующим началом, тело должно быть совершенным. Последний раз редактировалось Naked; 15.05.2006 в 20:38. |
|
|
|
|
|
# 5 | |
|
::VIP::
Регистрация: 15.05.2005
Адрес: Питер
Сообщения: 1 194
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Цитата:
А "после" говорит UNICODE... ![]() Причем кодировку базы оно все-таки меняет....на какую-то, тока вот при выводе на экран явно не utf думаю, может эта проблема в пхп? Я записываю данные из базы в переменную... utf же 2 байта требует на символ, может там как-нибудь нужно по специальному переменные создавать
__________________
Чтобы воля стала действующим началом, тело должно быть совершенным. Последний раз редактировалось Naked; 15.05.2006 в 20:53. |
|
|
|
|
|
# 7 |
|
::VIP::
Регистрация: 15.05.2005
Адрес: Питер
Сообщения: 1 194
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
вот вместо:
Иван Николаевич Панов Выводит: йЧБО оЙЛПМБЕЧЙЮ рБОПЧ Если не делаю Set CLIENT...... то выводит: ���� ���������� �����
__________________
Чтобы воля стала действующим началом, тело должно быть совершенным. |
|
|
|
|
# 9 | |
|
::VIP::
Регистрация: 15.05.2005
Адрес: Питер
Сообщения: 1 194
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Цитата:
неа, ставлю в браузере отображение koi8 и получаю:п╧п╖п▒п· п╬п≥п⌡п÷п°п▒п∙п╖п≥п╝ я─п▒п·п÷п╖ (это если делаю SET CLIENT_ENCODING TO UTF8) А вот если не делаю, то пишет как и положено: Иван Николаевич Панов (при кодировке в браузере koi8)
__________________
Чтобы воля стала действующим началом, тело должно быть совершенным. |
|
|
|
|
|
# 11 |
|
::VIP::
Регистрация: 15.05.2005
Адрес: Питер
Сообщения: 1 194
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Фух, разобрался...
оказалось, что кодировка самой базы была win, а записи в этой базе хранились в кодировке koi8, от этого получалось, что действительно делалось WIN->UTF8, и записи преобразовывались в утф, тока сами они были в кои8, короче запутано все было - в итоге перекодировал всю таблицу, теперь там в нормальной виндовой кодировке и кодировка таблицы тоже виндовая Очень помог, RaZEr
__________________
Чтобы воля стала действующим началом, тело должно быть совершенным. |
|
|
|
|
# 12 |
|
::VIP::
Регистрация: 15.05.2005
Адрес: Питер
Сообщения: 1 194
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Хм, опять почти такая же проблемка - нужно сделать запрос к базе, а в запросе есть русские буквы (SELECT * FROM table WHERE city='Санкт-Петербург'), соответственно запрос пишу в шелле (пользуюсь putty), в скрипте ($sql = "SELECT * FROM table WHERE city='Санкт-Петербург'"), затем выполняю его, но результата никакого... если запрос вывести на страницу (сам текст), скопировать, потом выполнить его в самой базе, то все выполняется, думаю проблема опять в кодировке - ведь в скрипте получается utf8, а база теперь на SQL_ASCII
всякие команды базе типа "SET CLIENT_ENCODING TO UTF8" не помогает... перевод $sql в виндовскую кодировку тоже не помогает.... даже не знаю что делать Подскажите, как решить проблему...
__________________
Чтобы воля стала действующим началом, тело должно быть совершенным. |
|
|
|
|
# 13 |
|
мод
IMHO Кодер-200(6,7,8) Регистрация: 29.03.2003
Адрес: Saint-Petersburg, Russia
Пол: Male
Сообщения: 2 734
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
А если из шелла прямо запрос в UTF8 ввести? С помощью iconv например, если локаль не юникодная.
__________________
Я делаю Линукс! Присоединяйтесь к свободным людям! Связаться со мной всегда можно по джабберу: Hubbitus@jabber.ru Pahan-Hubbitus. |
|
|
|
|
# 14 | |
|
::VIP::
Регистрация: 15.05.2005
Адрес: Питер
Сообщения: 1 194
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Цитата:
даже не знаю что и делать
__________________
Чтобы воля стала действующим началом, тело должно быть совершенным. |
|
|
|
|
|
# 15 | |
|
::VIP::
Регистрация: 12.11.2002
Адрес: Nicosia, Cyprus
Сообщения: 1 285
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Цитата:
__________________
"If people only knew how hard I work to gain my mastery, it wouldn't seem so wonderful at all." Michelangelo Buonarroti |
|
|
|
|
|
# 16 | |
|
мод
IMHO Кодер-200(6,7,8) Регистрация: 29.03.2003
Адрес: Saint-Petersburg, Russia
Пол: Male
Сообщения: 2 734
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Цитата:
По умолчанию-то она юникодная, в Федоре начиная с 4 версии, да только никто же не мешает сменить, как локально, так и для конкретного соединения выбрать!
__________________
Я делаю Линукс! Присоединяйтесь к свободным людям! Связаться со мной всегда можно по джабберу: Hubbitus@jabber.ru Pahan-Hubbitus. |
|
|
|
|
|
# 17 | |||
|
::VIP::
Регистрация: 15.05.2005
Адрес: Питер
Сообщения: 1 194
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Цитата:
Цитата:
Цитата:
__________________
Чтобы воля стала действующим началом, тело должно быть совершенным. |
|||
|
|
|
|
# 18 |
|
мод
IMHO Кодер-200(6,7,8) Регистрация: 29.03.2003
Адрес: Saint-Petersburg, Russia
Пол: Male
Сообщения: 2 734
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Ну приведи тогда вообще что БД говорит на
show VARIABLES;
__________________
Я делаю Линукс! Присоединяйтесь к свободным людям! Связаться со мной всегда можно по джабберу: Hubbitus@jabber.ru Pahan-Hubbitus. |
|
|
|
|
# 19 | ||
|
::VIP::
Регистрация: 15.05.2005
Адрес: Питер
Сообщения: 1 194
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Цитата:
Цитата:
__________________
Чтобы воля стала действующим началом, тело должно быть совершенным. |
||
|
|
|
|
# 20 |
|
Member
Регистрация: 26.09.2005
Адрес: Питер
Сообщения: 336
![]() ![]() |
Подскажите, как поменять дефолтовую кодировку для MySQL Server 5.0 по винду? Дома просто поставил. Сейчас стоит шведская, а хочется cp1251. Поигрался с настройками, что перестало к мускулу конектиться. Где надо менять?
|
|
|