|
|
|
| Творятся мистические вещи.
Работаю я себе с мусклом, всё с базами нормально, работают с русскими символами корректно, добавляются, извлекаются, всё путём.
Недавно сделал я себе новую базу, и маленькую форму написал на пхп, для заполнения одной из таблиц. Эта база не заработала с русскими символами, при попытке вывести, как на консоль, так и в броузер, выдаёт одни вопросики.
При этом, я сделал запрос из консоли на вставку в одну из ячеек таблицы алфавита. В консоли можно прочитать некоторые буквы, а в броузере выдаётся вот что:
???¤??¦§??«¬®???????????????? ??‚?„…?†‡??‹?????‘’“”•—?™?›????
Кодировки по умолчанию в апаче, пхп и мускле поставлены ср1251. Другие базы работают нормально. Новые созданные - вот так вот криво. Кто знает, как победить напасть? | |
|
|
|
|
|
|
|
для: Davic
(23.06.2005 в 17:19)
| | А какая версия мускула? Не 4.0.21 случайно? | |
|
|
|
|
|
|
|
для: Евгений Петров
(23.06.2005 в 17:22)
| | Версия 4.1.12 | |
|
|
|
|
|
|
|
для: Davic
(23.06.2005 в 17:25)
| | А кодировка мускула? файл C:\WINDOWS\my.ini | |
|
|
|
|
|
|
|
для: Евгений Петров
(23.06.2005 в 17:33)
| | Кодировка по умолчанию cp1251
Проверял variables - всё стоит как надо. | |
|
|
|
|
|
|
|
для: Davic
(23.06.2005 в 17:35)
| | Млина, тут совсем недавно на две страницы объясняли человеку про кодировки в новой базе, тема еще наверное не ушла на вторую страницу. Хотябы прочитали заголовки тем, если поиском не хотите пользоваться.
Новая база и должна так себя вести, потому как по умолчанию создаются таблицы в кодировке cp_swedish_latin_ci.
Саму базу сначала нужно создать указав сравнение 1251_ci.
А после создания возможно еше и в пхп придется после соединения указывать три команды по кодировкам, чтобы они правильно выводились. | |
|
|
|
|
|
|
|
для: 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'");
всё заработало.
Только всё равно я толком не понял, в чём дело. Я дефолтовую кодировку указал, но получается, что для клиента надо принудительно ещё указывать в запросах, и для сравнения? А можно сделать, чтоб не надо было писать такие запросы?
Извините, если вопрос глупый, но начитавшись форумов и документаций, я на сегодня имею в голове какую-то кашу. | |
|
|
|
|
|
|
|
для: Davic
(23.06.2005 в 20:02)
| | Да, ты верн овсе понял. Саму базу данных нужно создать уже в кодировке 1251 и тогда все созданные таблицы автоматом создаются в этой кодировке. Если база в другой кодировке, то нужно при создании в коде указывать кодировку таблиц иначе они создаются в кодировке базы. Теперь все элементы имеют свою кодировку: Базы, таблицы, строки, ячейки | |
|
|
|
|
|
|
|
для: Davic
(23.06.2005 в 17:19)
| | От безделья, пока никто по существу ничего не написал, :) я покопался во всяких документациях и своём мускле. Выяснилось следующее обстоятельство, которое, может быть наведёт знающего человека на какую-нибудь мысль.
Я выполнил команду
к таблице, которая никак не хочет вести себя прилично, и выяснилость, что для этой таблицы:
Character set: ? (51)
проверив также таблицу, которая корректно выдаёт на броузер русские символы, и корректно же их из него принимает, я получил следующее:
Character set: latin1_swedish_ci (8)
Может собака зарыта где-то здесь? | |
|
|
|
|
|
|
|
для: Davic
(23.06.2005 в 18:48)
| | Да, да, начиная с версии СУБД 4.1.0 - поменялась система кодировок - посмотрите тему по ссылке http://www.softtime.ru/forum/read.php?id_forum=3&id_theme=4467 | |
|
|
|
|
|
|
|
для: cheops
(23.06.2005 в 20:03)
| | а в пятой версии таже проблема? мне нравиться 3.23.53 и с нее я пока уходить не собираюсь... | |
|
|
|
|
|
|
|
для: P@Sol
(24.06.2005 в 08:47)
| | Да в 5 версии та же система кодировок... MySQL здорово развивается и очень уж хочется добраться до функциональности, которую ввели в MySQL 4.1 и MySQL 5.0 - в последней версии MySQL практически сравнялась по функциональности с MS SQL... | |
|
|
|
|
|
|
|
для: cheops
(24.06.2005 в 09:38)
| | Это точно! Наворотили будь здоров. Я начал все свои локальные проги переводить с SQL Server на MySQL через ODBC. Но основная фича, которая мне просто незаменима - это полнотекстовый поиск как в обычном режиме, так и в IN BOOLEAN MODE. | |
|
|
|
|
|
|
|
для: XPraptor
(24.06.2005 в 10:57)
| | >Но основная фича, которая мне просто незаменима - это
>полнотекстовый поиск как в обычном режиме, так и в IN
>BOOLEAN MODE.
Поговаривают, что в крупных базах - он жутко тормозить начинает... Правда столько текста набить нужно ещё постараться, например, в форуме с такой проблемой пока не сталкивались. | |
|
|
|