MySQL + кодировка

MySQL/PostgreSQL/SQLite/Oracle/M$SQL/....

Модератор: terminus

Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Al
ст. прапорщик
Сообщения: 501
Зарегистрирован: 2007-10-18 13:42:48
Откуда: Тверь
Контактная информация:

MySQL + кодировка

Непрочитанное сообщение Al » 2008-05-13 7:49:09

Вопрос такой: есть несколько прог, работающих с мускулем. Все пишут нормально русский в базы,кроме одной. В базе только вопросики..Как можно узнать, сама прога с русским не дружит,или просто кодировки не сходятся?

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Аватара пользователя
ProFTP
подполковник
Сообщения: 3388
Зарегистрирован: 2008-04-13 1:50:04
Откуда: %&й
Контактная информация:

Re: MySQL + кодировка

Непрочитанное сообщение ProFTP » 2008-05-13 8:09:07

1)посомтреть в какой кодирвоке програ работает, есди это пхп
2) посмотреть в какой кодировке база
3) использовать одну кодировку
Pеrl FAQ
perl -e 'print join"",map $$_[rand@$_],([0..9,'a'..'z','A'..'Z'])x30'
ИзображениеИзображение

zg
полковник
Сообщения: 5845
Зарегистрирован: 2007-12-07 13:51:33
Откуда: Верх-Нейвинск

Re: MySQL + кодировка

Непрочитанное сообщение zg » 2008-05-13 9:51:34


Al
ст. прапорщик
Сообщения: 501
Зарегистрирован: 2007-10-18 13:42:48
Откуда: Тверь
Контактная информация:

Re: MySQL + кодировка

Непрочитанное сообщение Al » 2008-05-13 16:54:39

прога на яве. в базе latin1 swedish.
по умолчанию база создается с кодировкой latin1_swedish_ci. При попытке записать туда русский прямо в мускуль - знаки вопросов. Если меняешь кодировку на понимабщую русский,все ок, но прога пишет все равно вопросиками в мускуль

zg
полковник
Сообщения: 5845
Зарегистрирован: 2007-12-07 13:51:33
Откуда: Верх-Нейвинск

Re: MySQL + кодировка

Непрочитанное сообщение zg » 2008-05-13 18:02:47

нда... а кто-то мне говорил, что таких вопросов будет меньше :lol:

не поленись, сходи почитай статью, я там всё подробно расписал как, что и почему, и почему вопросики лезут, и как надо делать.

Al
ст. прапорщик
Сообщения: 501
Зарегистрирован: 2007-10-18 13:42:48
Откуда: Тверь
Контактная информация:

Re: MySQL + кодировка

Непрочитанное сообщение Al » 2008-05-14 8:24:19

вот ты не поверишь, статью я прочитал и не раз, и еще кучу подобных по мускулю.. Выставление кодировок utf8, koi8r и cp2151 в самом мускуле и таблицах не спасают никаким образом. Просто я не спец в СУБД и думал,может кто подскажет еще какой вариант. А за статью автору спасибо. Хорошая статья.

zg
полковник
Сообщения: 5845
Зарегистрирован: 2007-12-07 13:51:33
Откуда: Верх-Нейвинск

Re: MySQL + кодировка

Непрочитанное сообщение zg » 2008-05-14 8:52:58

Мускуль хранит данные в одной кодировке, а использует в кодировке клиента. Поэтому нужно создать таблицу в той кодировке, в которой данные будут храниться (например UTF8), потом выставить кодировку клиента через names, только тогда мускуль зная сходную и конечную кодировки сможет корректно работать с данными.

zg
полковник
Сообщения: 5845
Зарегистрирован: 2007-12-07 13:51:33
Откуда: Верх-Нейвинск

Re: MySQL + кодировка

Непрочитанное сообщение zg » 2008-05-14 9:13:21

Al писал(а):Выставление кодировок utf8, koi8r и cp2151 в самом мускуле и таблицах не спасают никаким образом..
Версии мускула до 4.1.11 не поддерживают кодировки таблиц, у тебя какой мускул?

Al
ст. прапорщик
Сообщения: 501
Зарегистрирован: 2007-10-18 13:42:48
Откуда: Тверь
Контактная информация:

Re: MySQL + кодировка

Непрочитанное сообщение Al » 2008-05-14 9:33:00

у меня 5.1. Засада оказалась в другом.
делаешь

Код: Выделить всё

 set names 'cp1251';
 show variables like 'char%';
все ок. показывает cp1251. А если посмотреть через phpmyadmin, то кодировки прежние. +Выходишь-заходишь клиентом и show variables like 'char%'; показывает старые кодировки. Изменение настроек надо как-то сохранять? В общем, решилось добавлением кодировок в конфиг. Но почему они из клиента не сохраняются?

zg
полковник
Сообщения: 5845
Зарегистрирован: 2007-12-07 13:51:33
Откуда: Верх-Нейвинск

Re: MySQL + кодировка

Непрочитанное сообщение zg » 2008-05-14 10:29:55

Al писал(а):Но почему они из клиента не сохраняются?
клиент работает в сессии, на время сессии кодировки можно менять, после отключения клиента сессия удаляется, а для новой сессии кодировки берутся из настроек сервера.

Аватара пользователя
BlackCat
прапорщик
Сообщения: 469
Зарегистрирован: 2007-10-16 22:40:42

Re: MySQL + кодировка

Непрочитанное сообщение BlackCat » 2008-05-14 11:15:52

Al писал(а):В общем, решилось добавлением кодировок в конфиг.
Изменение конфига ведет к изменению дефолтных настроек для всех клиентов. Налаживая одну систему, можно порушить остальные.
=====
zg писал(а):клиент работает в сессии, на время сессии кодировки можно менять, после отключения клиента сессия удаляется, а для новой сессии кодировки берутся из настроек сервера.
Может этот момент отдельно в статье отметить?

zg
полковник
Сообщения: 5845
Зарегистрирован: 2007-12-07 13:51:33
Откуда: Верх-Нейвинск

Re: MySQL + кодировка

Непрочитанное сообщение zg » 2008-05-14 11:22:17

BlackCat писал(а):Может этот момент отдельно в статье отметить?
нуу... это технология клиент-сервер, которая применяется не только для MySQL, но в php, HTTP и т.д. Но, в принципе, можно отметить, потому как первый раз действительно непонятно.

Я там забыл ещё один вопрос рассмотреть - что делать если изначально была кодировка неверной, а данные терять нельзя. :) Сёдня-завтра обновлю =))

Аватара пользователя
-=Ded=-
рядовой
Сообщения: 35
Зарегистрирован: 2008-01-14 20:11:31

Re: MySQL + кодировка

Непрочитанное сообщение -=Ded=- » 2008-06-20 20:54:12

вот и у меня сново гимор с кодировками при переносе сайта :(

phpmyadmin показывает обсалютно одинаковые настройки баз как на старом сервере(я имею ввиду сами кодировки), так и на новом, вся разница только в версиях мускуля 4.1 и 5.1.
другие базы с того сервера перенеслись и уже работают как надо, а с этой непонятки...
половина сайта правильная кодировка, а все новости из одной таблицы показываются как ????
самое непонятно то, что когда смотрю таблицы в самом phpmyadmin то никаких ??? нет, и все читаемо.
переносил как обычно , на старом из вебмина создал дамп, а на новом #mysql imia_bazy < damp.sql

в общем проблема решена, в движке сайта небыла указана кодировка запроса.

Мишаня
мл. сержант
Сообщения: 119
Зарегистрирован: 2009-02-11 19:10:48

Re: MySQL + кодировка

Непрочитанное сообщение Мишаня » 2009-02-13 0:50:36

-=Ded=- писал(а):
в общем проблема решена,
Можно по подробнее описать? Поставил MySQl50 и phpmyadmin кирилица выводит как ???