URL: https://www.opennet.ru/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 74581
[ Назад ]

Исходное сообщение
"XML -> MySQL неправильная кодировка"

Отправлено cascas , 09-Июн-07 14:18 
Добрый день

Есть такая проблема файл XML имеет текст в кодировке <?xml version="1.0" encoding="windows-1251"?>

MySQL настроен на cp1251 в файле /etc/my.cnf прописано:

default-character-set=cp1251
character-set-server=cp1251
collation-server=cp1251_general_ci
init-connect="SET NAMES cp1251"
skip-character-set-client-handshake

default-character-set=cp1251

Когда добавляю данные из xml в mysql и отображаю при помощи web browserа то все данные коректно отображаются только в кодировке UTF-8.

Local в линуксе установлена на UTF-8

Что надо сделать что бы в web browserе данные отображались в cp1251??

PS дистриб SLES 10.0 32-bit



Содержание

Сообщения в этом обсуждении
"XML -> MySQL неправильная кодировка"
Отправлено Nimdar , 09-Июн-07 14:43 
Пересобрать mysql  --with-charset=cp1251

"XML -> MySQL неправильная кодировка"
Отправлено cascas , 09-Июн-07 14:57 
>Пересобрать mysql  --with-charset=cp1251

А другое решение существует?


"XML -> MySQL неправильная кодировка"
Отправлено devcoder , 09-Июн-07 15:22 
>>Пересобрать mysql  --with-charset=cp1251
>
>А другое решение существует?

Добавляете через phpmyadmin?
В какой кодировке?



"XML -> MySQL неправильная кодировка"
Отправлено cascas , 09-Июн-07 15:40 
>>>Пересобрать mysql  --with-charset=cp1251
>>
>>А другое решение существует?
>
>Добавляете через phpmyadmin?
>В какой кодировке?

Добавляю через собственно написаный скрипт на php
в какой кодировке не знаю как проперить?
это в той в которой работает apache2?


"XML -> MySQL неправильная кодировка"
Отправлено devcoder , 09-Июн-07 16:08 
>Добавляю через собственно написаный скрипт на php
>в какой кодировке не знаю как проперить?
>это в той в которой работает apache2?


1) установить кодировку cp1251 для веб-сайта
это делается разными способами: директивами апача и(или) на самой странице
описывать не буду - одним предложением не расскажешь
эту вещь нужно понять, так как есть особенность по upload
так что читайте доки, их предостаточно

2) после соединения с базой в скрипты добавить строки
http://www.opennet.ru/openforum/vsluhforumID9/6529.html
!!! только нужно изменить с utf8 на cp1251


"XML -> MySQL неправильная кодировка"
Отправлено Nimdar , 09-Июн-07 16:16 
>1) установить кодировку cp1251 для веб-сайта
>это делается разными способами: директивами апача и(или) на самой странице
>описывать не буду - одним предложением не расскажешь
>эту вещь нужно понять, так как есть особенность по upload
>так что читайте доки, их предостаточно

Если результат запроса mysql отдаёт в utf8, то установка кодировки для веб-сайта - бессмысленное занятие.

>
>2) после соединения с базой в скрипты добавить строки
>http://www.opennet.ru/openforum/vsluhforumID9/6529.html
>!!! только нужно изменить с utf8 на cp1251


"XML -> MySQL неправильная кодировка"
Отправлено devcoder , 09-Июн-07 16:47 
>>1) установить кодировку cp1251 для веб-сайта
>
>Если результат запроса mysql отдаёт в utf8, то установка кодировки для веб-сайта
>- бессмысленное занятие.

Если не выполнить пункт 2 (см. ниже), то да.

Хотя можно и перекодировать на стороне веб-сервера. Изврат конечно, но возможно.

>>2) после соединения с базой в скрипты добавить строки
>>http://www.opennet.ru/openforum/vsluhforumID9/6529.html
>>!!! только нужно изменить с utf8 на cp1251



"XML -> MySQL неправильная кодировка"
Отправлено Nimdar , 09-Июн-07 15:48 
>>Пересобрать mysql  --with-charset=cp1251
>
>А другое решение существует?

Да, можно, ещё во всех скриптах, где выполняются запросы к базе, а точнее в том, где инициализируется коннект к базе, прописать SET NAMES cp1251, или SET character_set_results=cp1251


"XML -> MySQL неправильная кодировка"
Отправлено universite , 09-Июн-07 15:55 
>>>Пересобрать mysql  --with-charset=cp1251
>>
>>А другое решение существует?
>
>Да, можно, ещё во всех скриптах, где выполняются запросы к базе, а
>точнее в том, где инициализируется коннект к базе, прописать SET NAMES
>cp1251, или SET character_set_results=cp1251

+1


"XML -> MySQL неправильная кодировка"
Отправлено cascas , 13-Июн-07 14:30 
>>>>Пересобрать mysql  --with-charset=cp1251
>>>
>>>А другое решение существует?
>>
>>Да, можно, ещё во всех скриптах, где выполняются запросы к базе, а
>>точнее в том, где инициализируется коннект к базе, прописать SET NAMES
>>cp1251, или SET character_set_results=cp1251
>
>+1

Прочитал вот эти ссылки

http://www.opennet.ru/base/dev/mysql_cp1251.txt.html
http://www.nclug.ru/content.php?article.92
http://phpclub.ru/faq/wakka.php?wakka=Mysql41Rus&v=eum
http://www.st-host.ru/help/index.php?media=print&id_article=15
http://www.1gb.ru/default.aspx?ti=6&hti=10


Попробовал и сделал как там написано но всеравно ничего не выхот в mysql как данные лежали в utf8 так и лежат

В скрипт который добавляет данные из xml в mysql добавил
mysql_query ("SET NAMES `cp1251`");  

после соединения с mysql

Но по всем примерам из ссылок у народа проблеммы со знаками вопросов у меня нет такой у меня проблема почему мойскрип пишет данные в mysql в непонятное кодировке?