Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Кирилица в MySQL.
 
 автор: Davic   (23.06.2005 в 17:19)   письмо автору
 
 

Творятся мистические вещи.
Работаю я себе с мусклом, всё с базами нормально, работают с русскими символами корректно, добавляются, извлекаются, всё путём.
Недавно сделал я себе новую базу, и маленькую форму написал на пхп, для заполнения одной из таблиц. Эта база не заработала с русскими символами, при попытке вывести, как на консоль, так и в броузер, выдаёт одни вопросики.
При этом, я сделал запрос из консоли на вставку в одну из ячеек таблицы алфавита. В консоли можно прочитать некоторые буквы, а в броузере выдаётся вот что:
???¤??¦§??«¬­®???????????????? ??‚?„…?†‡??‹?????‘’“”•—?™?›????

Кодировки по умолчанию в апаче, пхп и мускле поставлены ср1251. Другие базы работают нормально. Новые созданные - вот так вот криво. Кто знает, как победить напасть?

   
 
 автор: Евгений Петров   (23.06.2005 в 17:22)   письмо автору
 
   для: Davic   (23.06.2005 в 17:19)
 

А какая версия мускула? Не 4.0.21 случайно?

   
 
 автор: Davic   (23.06.2005 в 17:25)   письмо автору
 
   для: Евгений Петров   (23.06.2005 в 17:22)
 

Версия 4.1.12

   
 
 автор: Евгений Петров   (23.06.2005 в 17:33)   письмо автору
 
   для: Davic   (23.06.2005 в 17:25)
 

А кодировка мускула? файл C:\WINDOWS\my.ini

   
 
 автор: Davic   (23.06.2005 в 17:35)   письмо автору
 
   для: Евгений Петров   (23.06.2005 в 17:33)
 

Кодировка по умолчанию cp1251
Проверял variables - всё стоит как надо.

   
 
 автор: XPraptor   (23.06.2005 в 18:46)   письмо автору
 
   для: Davic   (23.06.2005 в 17:35)
 

Млина, тут совсем недавно на две страницы объясняли человеку про кодировки в новой базе, тема еще наверное не ушла на вторую страницу. Хотябы прочитали заголовки тем, если поиском не хотите пользоваться.
Новая база и должна так себя вести, потому как по умолчанию создаются таблицы в кодировке cp_swedish_latin_ci.
Саму базу сначала нужно создать указав сравнение 1251_ci.
А после создания возможно еше и в пхп придется после соединения указывать три команды по кодировкам, чтобы они правильно выводились.

   
 
 автор: Davic   (23.06.2005 в 20:02)   письмо автору
 
   для: XPraptor   (23.06.2005 в 18:46)
 

Вопрос возник потому что до этого я базы создавал и всё работало как надо. А тут вдруг засбоило.
Я включил в свой конфиг запросы:
mysql_query ("set character_set_client='cp1251'");
mysql_query ("set character_set_results='cp1251'");
mysql_query ("set collation_connection='cp1251_general_ci'");

всё заработало.
Только всё равно я толком не понял, в чём дело. Я дефолтовую кодировку указал, но получается, что для клиента надо принудительно ещё указывать в запросах, и для сравнения? А можно сделать, чтоб не надо было писать такие запросы?
Извините, если вопрос глупый, но начитавшись форумов и документаций, я на сегодня имею в голове какую-то кашу.

   
 
 автор: XPraptor   (24.06.2005 в 02:12)   письмо автору
 
   для: Davic   (23.06.2005 в 20:02)
 

Да, ты верн овсе понял. Саму базу данных нужно создать уже в кодировке 1251 и тогда все созданные таблицы автоматом создаются в этой кодировке. Если база в другой кодировке, то нужно при создании в коде указывать кодировку таблиц иначе они создаются в кодировке базы. Теперь все элементы имеют свою кодировку: Базы, таблицы, строки, ячейки

   
 
 автор: Davic   (23.06.2005 в 18:48)   письмо автору
 
   для: Davic   (23.06.2005 в 17:19)
 

От безделья, пока никто по существу ничего не написал, :) я покопался во всяких документациях и своём мускле. Выяснилось следующее обстоятельство, которое, может быть наведёт знающего человека на какую-нибудь мысль.

Я выполнил команду
myisamchk -d

к таблице, которая никак не хочет вести себя прилично, и выяснилость, что для этой таблицы:
Character set: ? (51)

проверив также таблицу, которая корректно выдаёт на броузер русские символы, и корректно же их из него принимает, я получил следующее:
Character set: latin1_swedish_ci (8)

Может собака зарыта где-то здесь?

   
 
 автор: cheops   (23.06.2005 в 20:03)   письмо автору
 
   для: Davic   (23.06.2005 в 18:48)
 

Да, да, начиная с версии СУБД 4.1.0 - поменялась система кодировок - посмотрите тему по ссылке http://www.softtime.ru/forum/read.php?id_forum=3&id_theme=4467

   
 
 автор: P@Sol   (24.06.2005 в 08:47)   письмо автору
 
   для: cheops   (23.06.2005 в 20:03)
 

а в пятой версии таже проблема? мне нравиться 3.23.53 и с нее я пока уходить не собираюсь...

   
 
 автор: cheops   (24.06.2005 в 09:38)   письмо автору
 
   для: P@Sol   (24.06.2005 в 08:47)
 

Да в 5 версии та же система кодировок... MySQL здорово развивается и очень уж хочется добраться до функциональности, которую ввели в MySQL 4.1 и MySQL 5.0 - в последней версии MySQL практически сравнялась по функциональности с MS SQL...

   
 
 автор: XPraptor   (24.06.2005 в 10:57)   письмо автору
 
   для: cheops   (24.06.2005 в 09:38)
 

Это точно! Наворотили будь здоров. Я начал все свои локальные проги переводить с SQL Server на MySQL через ODBC. Но основная фича, которая мне просто незаменима - это полнотекстовый поиск как в обычном режиме, так и в IN BOOLEAN MODE.

   
 
 автор: cheops   (24.06.2005 в 22:24)   письмо автору
 
   для: XPraptor   (24.06.2005 в 10:57)
 

>Но основная фича, которая мне просто незаменима - это
>полнотекстовый поиск как в обычном режиме, так и в IN
>BOOLEAN MODE.
Поговаривают, что в крупных базах - он жутко тормозить начинает... Правда столько текста набить нужно ещё постараться, например, в форуме с такой проблемой пока не сталкивались.

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования