imho.ws
IMHO.WS  

Вернуться   IMHO.WS > Веб-мастеру > Веб-программирование
Опции темы
Старый 15.05.2006, 20:24     # 1
Naked
::VIP::
 
Аватар для Naked
 
Регистрация: 15.05.2005
Адрес: Питер
Сообщения: 1 194

Naked СэнсэйNaked СэнсэйNaked СэнсэйNaked СэнсэйNaked СэнсэйNaked СэнсэйNaked СэнсэйNaked СэнсэйNaked СэнсэйNaked СэнсэйNaked СэнсэйNaked СэнсэйNaked СэнсэйNaked Сэнсэй
Проблема с кодировкой

Ситуация такая - сервер на 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 - не решение, слишком много того, где что-то выводится )

Спасибо.
__________________
Чтобы воля стала действующим началом, тело должно быть совершенным.
Naked вне форума  
Старый 15.05.2006, 20:31     # 2
RaZEr
МОД-Оператор ЭВМ
 
Аватар для RaZEr
 
Регистрация: 18.04.2002
Адрес: Питер
Сообщения: 4 343

RaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех Гуру
set character_set_results=utf8 в mysql. В постгресе попробуй set names utf8
RaZEr вне форума  
Старый 15.05.2006, 20:34     # 3
Naked
::VIP::
 
Аватар для Naked
 
Регистрация: 15.05.2005
Адрес: Питер
Сообщения: 1 194

Naked СэнсэйNaked СэнсэйNaked СэнсэйNaked СэнсэйNaked СэнсэйNaked СэнсэйNaked СэнсэйNaked СэнсэйNaked СэнсэйNaked СэнсэйNaked СэнсэйNaked СэнсэйNaked СэнсэйNaked Сэнсэй
Цитата:
RaZEr:
set character_set_results=utf8
это, если я правильно понял нужно в htaccess написать? написал - не получается проблема в том, что на выходе с сервера к клиенту, вроде получается страница половина которой на utf (это текст который в самом скрипте), а половина в другой кодировке (это данные, которые из базы берутся), и то, что написано все преобразует правильно?

Хм, или это к базе Mysql? Проверил на постгресе - не подходит...
__________________
Чтобы воля стала действующим началом, тело должно быть совершенным.

Последний раз редактировалось Naked; 15.05.2006 в 20:38.
Naked вне форума  
Старый 15.05.2006, 20:42     # 4
RaZEr
МОД-Оператор ЭВМ
 
Аватар для RaZEr
 
Регистрация: 18.04.2002
Адрес: Питер
Сообщения: 4 343

RaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех Гуру
А что говорит pg_client_encoding() до и после SET CLIENT_ENCODING TO UTF8?
RaZEr вне форума  
Старый 15.05.2006, 20:51     # 5
Naked
::VIP::
 
Аватар для Naked
 
Регистрация: 15.05.2005
Адрес: Питер
Сообщения: 1 194

Naked СэнсэйNaked СэнсэйNaked СэнсэйNaked СэнсэйNaked СэнсэйNaked СэнсэйNaked СэнсэйNaked СэнсэйNaked СэнсэйNaked СэнсэйNaked СэнсэйNaked СэнсэйNaked СэнсэйNaked Сэнсэй
Цитата:
RaZEr:
А что говорит pg_client_encoding()
"До" говорит WIN
А "после" говорит UNICODE...

Причем кодировку базы оно все-таки меняет....на какую-то, тока вот при выводе на экран явно не utf думаю, может эта проблема в пхп? Я записываю данные из базы в переменную... utf же 2 байта требует на символ, может там как-нибудь нужно по специальному переменные создавать
__________________
Чтобы воля стала действующим началом, тело должно быть совершенным.

Последний раз редактировалось Naked; 15.05.2006 в 20:53.
Naked вне форума  
Старый 15.05.2006, 20:59     # 6
RaZEr
МОД-Оператор ЭВМ
 
Аватар для RaZEr
 
Регистрация: 18.04.2002
Адрес: Питер
Сообщения: 4 343

RaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех Гуру
Цитата:
тока вот при выводе на экран явно не utf
А что на экран вываливается? Если выводишь слово из 10 русских букв, сколько иероглифов получается?
RaZEr вне форума  
Старый 15.05.2006, 21:03     # 7
Naked
::VIP::
 
Аватар для Naked
 
Регистрация: 15.05.2005
Адрес: Питер
Сообщения: 1 194

Naked СэнсэйNaked СэнсэйNaked СэнсэйNaked СэнсэйNaked СэнсэйNaked СэнсэйNaked СэнсэйNaked СэнсэйNaked СэнсэйNaked СэнсэйNaked СэнсэйNaked СэнсэйNaked СэнсэйNaked Сэнсэй
вот вместо:
Иван Николаевич Панов
Выводит:
йЧБО оЙЛПМБЕЧЙЮ рБОПЧ
Если не делаю Set CLIENT...... то выводит:
���� ���������� �����
__________________
Чтобы воля стала действующим началом, тело должно быть совершенным.
Naked вне форума  
Старый 15.05.2006, 21:07     # 8
RaZEr
МОД-Оператор ЭВМ
 
Аватар для RaZEr
 
Регистрация: 18.04.2002
Адрес: Питер
Сообщения: 4 343

RaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех Гуру
Цитата:
йЧБО оЙЛПМБЕЧЙЮ рБОПЧ
это KOI8
RaZEr вне форума  
Старый 15.05.2006, 21:11     # 9
Naked
::VIP::
 
Аватар для Naked
 
Регистрация: 15.05.2005
Адрес: Питер
Сообщения: 1 194

Naked СэнсэйNaked СэнсэйNaked СэнсэйNaked СэнсэйNaked СэнсэйNaked СэнсэйNaked СэнсэйNaked СэнсэйNaked СэнсэйNaked СэнсэйNaked СэнсэйNaked СэнсэйNaked СэнсэйNaked Сэнсэй
Цитата:
RaZEr:
это KOI8
неа, ставлю в браузере отображение koi8 и получаю:
п╧п╖п▒п· п╬п≥п⌡п÷п°п▒п∙п╖п≥п╝ я─п▒п·п÷п╖
(это если делаю SET CLIENT_ENCODING TO UTF8)
А вот если не делаю, то пишет как и положено:
Иван Николаевич Панов (при кодировке в браузере koi8)
__________________
Чтобы воля стала действующим началом, тело должно быть совершенным.
Naked вне форума  
Старый 15.05.2006, 21:19     # 10
RaZEr
МОД-Оператор ЭВМ
 
Аватар для RaZEr
 
Регистрация: 18.04.2002
Адрес: Питер
Сообщения: 4 343

RaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех Гуру
Цитата:
неа, ставлю в браузере отображение koi8 и получаю
Если ты перекодируешь это (ASCII) WIN->KOI, то будут нормальные данные. То есть база перекодировала не koi->utf, а win->utf.
RaZEr вне форума  
Старый 16.05.2006, 16:49     # 11
Naked
::VIP::
 
Аватар для Naked
 
Регистрация: 15.05.2005
Адрес: Питер
Сообщения: 1 194

Naked СэнсэйNaked СэнсэйNaked СэнсэйNaked СэнсэйNaked СэнсэйNaked СэнсэйNaked СэнсэйNaked СэнсэйNaked СэнсэйNaked СэнсэйNaked СэнсэйNaked СэнсэйNaked СэнсэйNaked Сэнсэй
Фух, разобрался... оказалось, что кодировка самой базы была win, а записи в этой базе хранились в кодировке koi8, от этого получалось, что действительно делалось WIN->UTF8, и записи преобразовывались в утф, тока сами они были в кои8, короче запутано все было - в итоге перекодировал всю таблицу, теперь там в нормальной виндовой кодировке и кодировка таблицы тоже виндовая Очень помог, RaZEr
__________________
Чтобы воля стала действующим началом, тело должно быть совершенным.
Naked вне форума  
Старый 23.05.2006, 18:00     # 12
Naked
::VIP::
 
Аватар для Naked
 
Регистрация: 15.05.2005
Адрес: Питер
Сообщения: 1 194

Naked СэнсэйNaked СэнсэйNaked СэнсэйNaked СэнсэйNaked СэнсэйNaked СэнсэйNaked СэнсэйNaked СэнсэйNaked СэнсэйNaked СэнсэйNaked СэнсэйNaked СэнсэйNaked СэнсэйNaked Сэнсэй
Хм, опять почти такая же проблемка - нужно сделать запрос к базе, а в запросе есть русские буквы (SELECT * FROM table WHERE city='Санкт-Петербург'), соответственно запрос пишу в шелле (пользуюсь putty), в скрипте ($sql = "SELECT * FROM table WHERE city='Санкт-Петербург'"), затем выполняю его, но результата никакого... если запрос вывести на страницу (сам текст), скопировать, потом выполнить его в самой базе, то все выполняется, думаю проблема опять в кодировке - ведь в скрипте получается utf8, а база теперь на SQL_ASCII всякие команды базе типа "SET CLIENT_ENCODING TO UTF8" не помогает... перевод $sql в виндовскую кодировку тоже не помогает.... даже не знаю что делать Подскажите, как решить проблему...
__________________
Чтобы воля стала действующим началом, тело должно быть совершенным.
Naked вне форума  
Старый 24.05.2006, 10:42     # 13
Hubbitus
мод
IMHO Кодер-200(6,7,8)
 
Регистрация: 29.03.2003
Адрес: Saint-Petersburg, Russia
Пол: Male
Сообщения: 2 734

Hubbitus Бог с наворотамиHubbitus Бог с наворотами
Hubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотами
А если из шелла прямо запрос в UTF8 ввести? С помощью iconv например, если локаль не юникодная.
__________________
Я делаю Линукс! Присоединяйтесь к свободным людям!

Связаться со мной всегда можно по джабберу: Hubbitus@jabber.ru
Pahan-Hubbitus.
Hubbitus вне форума  
Старый 24.05.2006, 19:51     # 14
Naked
::VIP::
 
Аватар для Naked
 
Регистрация: 15.05.2005
Адрес: Питер
Сообщения: 1 194

Naked СэнсэйNaked СэнсэйNaked СэнсэйNaked СэнсэйNaked СэнсэйNaked СэнсэйNaked СэнсэйNaked СэнсэйNaked СэнсэйNaked СэнсэйNaked СэнсэйNaked СэнсэйNaked СэнсэйNaked Сэнсэй
Цитата:
Hubbitus:
А если из шелла прямо запрос в UTF8 ввести?
не получается - если ввожу не делая "SET CLIENT_ENCODING TO UTF8", то выводит 0 строк, хотя точно есть строки... А если делаю SET CLIENT_ENCODING TO UTF8, то пишет что неправильная последовательность символов для UTF8... и коды всякие... локаль наверное юникодная - в линуксе федоре она родная юникодная...
даже не знаю что и делать
__________________
Чтобы воля стала действующим началом, тело должно быть совершенным.
Naked вне форума  
Старый 25.05.2006, 03:00     # 15
Saruman
::VIP::
 
Аватар для Saruman
 
Регистрация: 12.11.2002
Адрес: Nicosia, Cyprus
Сообщения: 1 285

Saruman ГуруSaruman ГуруSaruman ГуруSaruman ГуруSaruman ГуруSaruman ГуруSaruman ГуруSaruman ГуруSaruman ГуруSaruman ГуруSaruman ГуруSaruman ГуруSaruman ГуруSaruman Гуру
Цитата:
Naked:
локаль наверное юникодная
наверное или юникодная? в какой кодировке русские символы, которые ты в базу отправляешь? Выполни перед их отправкой SET NAMES utf8
__________________
"If people only knew how hard I work to gain my mastery, it wouldn't seem so wonderful at all." Michelangelo Buonarroti
Saruman вне форума  
Старый 25.05.2006, 11:27     # 16
Hubbitus
мод
IMHO Кодер-200(6,7,8)
 
Регистрация: 29.03.2003
Адрес: Saint-Petersburg, Russia
Пол: Male
Сообщения: 2 734

Hubbitus Бог с наворотамиHubbitus Бог с наворотами
Hubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотами
Цитата:
Naked:
локаль наверное юникодная - в линуксе федоре она родная юникодная...
Наверное?? посмотреть не судьба чтоли? (комманда locale)
По умолчанию-то она юникодная, в Федоре начиная с 4 версии, да только никто же не мешает сменить, как локально, так и для конкретного соединения выбрать!
__________________
Я делаю Линукс! Присоединяйтесь к свободным людям!

Связаться со мной всегда можно по джабберу: Hubbitus@jabber.ru
Pahan-Hubbitus.
Hubbitus вне форума  
Старый 25.05.2006, 17:37     # 17
Naked
::VIP::
 
Аватар для Naked
 
Регистрация: 15.05.2005
Адрес: Питер
Сообщения: 1 194

Naked СэнсэйNaked СэнсэйNaked СэнсэйNaked СэнсэйNaked СэнсэйNaked СэнсэйNaked СэнсэйNaked СэнсэйNaked СэнсэйNaked СэнсэйNaked СэнсэйNaked СэнсэйNaked СэнсэйNaked Сэнсэй
Цитата:
Hubbitus:
посмотреть не судьба чтоли? (комманда locale)
вот что выдает locale:
Цитата:
LANG=ru_RU.UTF-8
LC_CTYPE="ru_RU.UTF-8"
LC_NUMERIC="ru_RU.UTF-8"
LC_TIME=C
LC_COLLATE="ru_RU.UTF-8"
LC_MONETARY="ru_RU.UTF-8"
LC_MESSAGES=C
LC_PAPER="ru_RU.UTF-8"
LC_NAME="ru_RU.UTF-8"
LC_ADDRESS="ru_RU.UTF-8"
LC_TELEPHONE="ru_RU.UTF-8"
LC_MEASUREMENT="ru_RU.UTF-8"
LC_IDENTIFICATION="ru_RU.UTF-8"
LC_ALL=
Цитата:
Saruman:
Выполни перед их отправкой SET NAMES utf8
Такое не работает, а SET NAMES TO UTF8 выдает unrecognized configuration parameter "names"...
__________________
Чтобы воля стала действующим началом, тело должно быть совершенным.
Naked вне форума  
Старый 26.05.2006, 11:01     # 18
Hubbitus
мод
IMHO Кодер-200(6,7,8)
 
Регистрация: 29.03.2003
Адрес: Saint-Petersburg, Russia
Пол: Male
Сообщения: 2 734

Hubbitus Бог с наворотамиHubbitus Бог с наворотами
Hubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотами
Ну приведи тогда вообще что БД говорит на
show VARIABLES;
__________________
Я делаю Линукс! Присоединяйтесь к свободным людям!

Связаться со мной всегда можно по джабберу: Hubbitus@jabber.ru
Pahan-Hubbitus.
Hubbitus вне форума  
Старый 26.05.2006, 17:24     # 19
Naked
::VIP::
 
Аватар для Naked
 
Регистрация: 15.05.2005
Адрес: Питер
Сообщения: 1 194

Naked СэнсэйNaked СэнсэйNaked СэнсэйNaked СэнсэйNaked СэнсэйNaked СэнсэйNaked СэнсэйNaked СэнсэйNaked СэнсэйNaked СэнсэйNaked СэнсэйNaked СэнсэйNaked СэнсэйNaked Сэнсэй
Цитата:
Hubbitus:
Ну приведи тогда вообще что БД говорит на
show VARIABLES;
Вот что говорит консоль
Цитата:
unrecognized configuration parameter "variables"
и то же самое говорит pgadmin (программка для работы с постгресом)
__________________
Чтобы воля стала действующим началом, тело должно быть совершенным.
Naked вне форума  
Старый 02.06.2006, 23:42     # 20
Kvarx
Member
 
Регистрация: 26.09.2005
Адрес: Питер
Сообщения: 336

Kvarx Известность не заставит себя ждатьKvarx Известность не заставит себя ждать
Подскажите, как поменять дефолтовую кодировку для MySQL Server 5.0 по винду? Дома просто поставил. Сейчас стоит шведская, а хочется cp1251. Поигрался с настройками, что перестало к мускулу конектиться. Где надо менять?
Kvarx вне форума  


Ваши права в разделе
Вы НЕ можете создавать новые темы
Вы не можете отвечать в темах.
Вы НЕ можете прикреплять вложения
Вы НЕ можете редактировать свои сообщения

BB код Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.

Быстрый переход


Часовой пояс GMT +4, время: 17:33.




Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.