Добро пожаловать в форум, Guest >> Войти | Регистрация | Поиск | Правила | | В избранное | Подписаться | ||
Все форумы / MySQL |
![]() ![]() |
Топик располагается на нескольких страницах: [1] 2 вперед Ctrl→ все |
Paranoik Member Откуда: Сообщений: 170 |
Темы про кодировку тут появляюся почти раз в неделю. Но тем не менее, пройдя поиском и прочитав сообщения, не смог решить свою проблему. Есть: mysql 4.1.10a-nt, PHP 5.0.3, Apache 2.0.53, WinXP Prof RUS Интранет сайт; клиент на Delphi6 через компонент Zeos для работы с MySQL. Всё работает с одной и той же бд. Создал таблицы в базе с помомщью MySQL QUERY. Команда show create table ... по любой из них выдаёт 'cp1251'. Выполнив в MySQL QUERY запрос show variables получаю следующее: character_set_client = utf8 character_set_connection = utf8 character_set_database = cp1251 character_set_results = utf8 character_set_server = cp1251 character_set_system = utf8 collation_connection = utf8_general_ci collation_database = cp1251_general_ci collation_server = cp1251_general_ci PHP, общаясь с MySQL, русские символы отображает как "???????". Каждый раз при соединении, выполняя SET NAMES cp1251, решил проблему. В Дельфи аналогично выдавались "?????". Так же выполняя предварительно SET NAMES cp1251 решил проблему. Но бывает клиент теряет соединение и делает реконект, после чего снова "?????". Наверняка решится и эта проблема, выполняя в нужном месте очередной SET NAMES cp1251, но надоело уже. Неужели нельзя устроить всё так, чтобы не приходилось выполнять SET NAMES cp1251? Пробовал пересоздать базу в utf8 - аналогично без SET NAMES cp1251 не работает. Подозреваю, что переменные MySQL, находятся не в должном состоянии и может быть меня спасёт их установление всех в cp1251... Пробовал установить эти переменные в my.ini, но ничего не получилось :( Либо я неправильно это делаю, либо вообще это в корне неправильно. Ещё раз извиняюсь за очередную тему про русские кодировки, но заранее благодарен за совет или отсыл к источнику, где бы я смог найти ответ. Спасибо! |
11 апр 05, 21:01 [1458798] Ответить | Цитировать Сообщить модератору |
Хрен Member Откуда: Brisbane Сообщений: 1455 |
отсыл к источнику обратите внимание на параграф, который начинается с With the mysql client, it is not necessary to execute SET NAMES every time you start up |
11 апр 05, 21:11 [1458809] Ответить | Цитировать Сообщить модератору |
Paranoik Member Откуда: Сообщений: 170 |
Спасибо! Читаю. |
11 апр 05, 21:26 [1458826] Ответить | Цитировать Сообщить модератору |
Paranoik Member Откуда: Сообщений: 170 |
Нет. Неработает. Уже пробовал. Добавлял в файл my.ini строки: [mysql] default-character-set=cp1251 Пробовал в параметрах запуска службы указывать --default-character-set=cp1251 Не помогло. |
11 апр 05, 21:39 [1458836] Ответить | Цитировать Сообщить модератору |
Paranoik Member Откуда: Сообщений: 170 |
Уточнил тут, скрипт на PHP, посылая show variables (отрубив set names cp1251), выдаёт всё же следующее: character_set_client = latin1 character_set_connection = latin1 character_set_database = cp1251 character_set_results = latin1 character_set_server = cp1251 character_set_system = utf8 collation_connection = latin1_swedish_ci collation_database = cp1251_general_ci collation_server = cp1251_general_ci |
11 апр 05, 21:52 [1458852] Ответить | Цитировать Сообщить модератору |
Хрен Member Откуда: Brisbane Сообщений: 1455 |
ну тогда тебе верхний комментарий прочитать отсюда. Про init-connect |
11 апр 05, 22:26 [1458882] Ответить | Цитировать Сообщить модератору |
Paranoik Member Откуда: Сообщений: 170 |
А вот за это большое спасибо! Помогло. Может ещё кому понадобится: В my.ini в секции [mysqld] пишется строка: init-connect='SET NAMES cp1251' и кодировка будет устанавливаться при каждом соединении автоматом. |
12 апр 05, 15:37 [1461519] Ответить | Цитировать Сообщить модератору |
Mike M. Member Откуда: Сообщений: 12 |
Только в документации на MySQL 5.1 упоминается параметр init_connect и строчка в my.ini будет выглядеть как: [mysqld] init_connect='SET NAMES cp1251' |
6 янв 06, 18:27 [2233136] Ответить | Цитировать Сообщить модератору |
Dinky Member Откуда: GTA, ON, CA Сообщений: 716 |
afaik, начиная с 4-й версии должны работать все три варианта: set-variable = init_connect="" init-connect = "" init_connect = "" В 5.0.18 - работает :-P -- Dmitry |
6 янв 06, 21:01 [2233361] Ответить | Цитировать Сообщить модератору |
Хрен Member Откуда: Brisbane Сообщений: 1455 |
На этом фронте появилось кое-что новое: Из changelog для 4.1.15, но мержнуто в 5 тоже (примерно октябрь 2005): A new command line argument was added to mysqld to ignore client character set information sent during handshake, and use server side settings instead, to reproduce 4.0 behavior: mysqld --skip-character-set-client-handshake |
7 янв 06, 00:10 [2233719] Ответить | Цитировать Сообщить модератору |
Etwas Member Откуда: Сообщений: 3 |
у меня на Fedore стоит mysql 4.1.11 , до этого была база на 3 mysql и на OS/2. Сейчас, при переносе сайтов, столкнулся как раз с такой же проблемой. При импорте таблиц, в phpMyAdmin'e данные видно нормально, на русском языке, но на сайтах, они вопросами. В my.cnf поменял все что можно [mysqld] datadir=... socket=... old_passwords=1 default-character-set=cp1251 init-connect='SET NAMES cp1251' [mysql.server] user=mysql basedir=... default-character-set=cp1251 [mysqld_safe] err-log=... pid-file=... default-character-set=cp1251 [client] default-character-set=cp1251 запрос show variables выдает: character_set_client = cp1251 character_set_connection = cp1251 character_set_database = cp1251 character_set_results = cp1251 character_set_server = cp1251 character_set_system = utf8 collation_connection = cp1251 collation_database = cp1251_general_ci collation_server = cp1251_general_ci пересмотрел кучу литературы, перепробывал много способов, не получается исправить... Если в my.cnf поменять cp1251 на latin1, убить базу, и заново залить, то на сайтах выводятся данные нормально, кирилицей, но в phpMyAdmin'e - вопросами. Плюс сортировка тогда не работает. Может кто сталкивался с таким? |
20 янв 06, 14:40 [2273497] Ответить | Цитировать Сообщить модератору |
4m@t!c Member Откуда: //Украина/Киев (иногда Запорожье) Сообщений: 2677 |
поиск по форуму никто не отменял. Раз в 2 дня такой вопрос на форуме. ---------------------------------------- Артисты не приехали, приехали цыгане |
20 янв 06, 17:25 [2274338] Ответить | Цитировать Сообщить модератору |
Etwas Member Откуда: Сообщений: 3 |
В том-то и дело, что все советы, которые я находил на форуме, они не подходят. Все равно ничего не изменяется |
20 янв 06, 18:55 [2274697] Ответить | Цитировать Сообщить модератору |
4m@t!c Member Откуда: //Украина/Киев (иногда Запорожье) Сообщений: 2677 |
Список урлов, которые вы прочли? ---------------------------------------- Артисты не приехали, приехали цыгане |
20 янв 06, 18:59 [2274706] Ответить | Цитировать Сообщить модератору |
Etwas Member Откуда: Сообщений: 3 |
http://phpclub.ru/talk/showthread.php?s=420a006b73110f7b9cd65414ee6ca0ce&threadid=58477&highlight=%CA%EE%E4%E8%F0%EE%E2%EA%E0+MySql http://phpclub.ru/faq/wakka.php?wakka=Mysql41Rus И все в том же духе. Я сам ненавижу "глупые" вопросы, которые повторяются. Но, если посмотреть ту конфигурацию сервера, которую я привел, по-моему вопрос о поиске урлов исключается. Их я смотрел и внимательно читал. p.s. Только сейчас дошло, может в сайтах проблема? Жаль до понедельника не проверю... |
20 янв 06, 22:41 [2275050] Ответить | Цитировать Сообщить модератору |
Nick777
Guest |
Проблемы с кирилицей Cyrillic Character Sets (cp1251) при работе с mysql 4.1.18 (выводит такое ???????????). Я нашел как решить проблему. Это посылка дополнительного запроса к mysql function mysql_connection () { Global $host,$user,$pass; if(!$dbc=@mysql_connect("$host","$user","$pass")){ mysql_query("SET NAMES cp1251"); return $dbc; } Но иногда это не срабатывает(возможно из-за потери соединения или большого количества запросов к базе). Мой хостинг имеет _ENV["LANG"] en_US.UTF-8, mysql 4.1.18, PHP4. 1) Можно ли как-то работать с Cyrillic Character Sets (cp1251) без посылки дополнительного запроса? 2) Можно ли настроить конфигурацию mysql для работы с cp1251 через .htaccess так как я не имею доступа к php.ini и my.ini на хостинге? |
5 апр 06, 14:05 [2526807] Ответить | Цитировать Сообщить модератору |
просто Я
Guest |
Пассиб огромное!!! |
||
19 май 06, 16:09 [2685228] Ответить | Цитировать Сообщить модератору |
LanTHrusteR
Guest |
Вместо [mysql.server] надо писать [server] в доке именно [server] написано, поэтому у тебя и не работало. |
24 май 06, 18:28 [2702391] Ответить | Цитировать Сообщить модератору |
LanTHrusteR
Guest |
[server] skip-character-set-client-handshake init-connect='set NAMES cp1251' и заработает |
24 май 06, 18:31 [2702402] Ответить | Цитировать Сообщить модератору |
LanTHrusteR
Guest |
Или ты забыл skip-character-set-client-handshake |
24 май 06, 18:33 [2702411] Ответить | Цитировать Сообщить модератору |
ibcon Member Откуда: Санкт-Петербург Сообщений: 11 |
У меня такая же проблема. Не знаю пока как решить. Может кто знает? Есть база данных в которой все таблицы имеют кодировку ср1251. При выполнении запроса show variables получаю: character_set_client = utf8 character_set_connection = cp1251 character_set_database = cp1251 character_set_results = utf8 character_set_server = latin1 character_set_system = utf8 collation_connection = cp1251_general_ci collation_database = cp1251_general_ci collation_server = latin_swedish_ci Теперь когда я в Акцессе выполняю "Внешние данные -> Связь с таблицами" через настроенный ODBC-источник мне в итоговых таблицах выдается или "??????????" или еще какая-то ерунда. Пробовал прописать set names cp1251 - не помогает. |
24 май 06, 18:45 [2702461] Ответить | Цитировать Сообщить модератору |
lissyara Member Откуда: Made in USSR Сообщений: 5945 |
кстати тема - у меня на паре машин собран с такой кодировкой сам сервер и клиент - так на другие перенести не могу - вопросы кажут.... Posted via ActualForum NNTP Server 1.3 |
24 май 06, 21:24 [2702931] Ответить | Цитировать Сообщить модератору |
pcb Member Откуда: Сообщений: 1 |
Аналогичная как и у многих ситуация. version 4.1.8-max character_set_client cp1251 character_set_connection cp1251 character_set_database cp1251 character_set_results cp1251 character_set_server cp1251 character_set_system utf8 collation_connection cp1251_general_ci collation_database cp1251_general_ci collation_server cp1251_general_ci ACCESS выполняю "Внешние данные -> Связь с таблицами" через настроенный ODBC-источник(mysql-connector-odbc-3.51.12-win32), таблицах выдается "??????????" MySQL Control Center 0.9.4 таблицах выдается "??????????" MySQL Administrator 1.1.9 все по русски. В чем может быть проблема? |
14 июл 06, 23:24 [2884444] Ответить | Цитировать Сообщить модератору |
bac Member Откуда: Пенза Сообщений: 449 |
В ODBC есть закладка Connect Options, там в поле Initial Statement ввести set names 'cp1251' |
20 июл 06, 21:06 [2907368] Ответить | Цитировать Сообщить модератору |
hristoff Member Откуда: Сообщений: 20 |
У меня на хостинге: character_set_client utf8 character_set_connection cp1251 character_set_database latin1 character_set_results utf8 character_set_server latin1 character_set_system utf8 character_sets_dir /usr/share/mysql/charsets/ collation_connection cp1251_bin collation_database latin1_swedish_ci collation_server latin1_swedish_ci А на моём компе: character_set latin1 character_sets latin1 big5 czech euc_kr gb2312 gbk latin1_de sjis... При переносе с моего на хостинг через пхпадмин все русские символы отображаються вопросика что делать ?????? |
28 июл 06, 13:45 [2938359] Ответить | Цитировать Сообщить модератору |
Топик располагается на нескольких страницах: [1] 2 вперед Ctrl→ все |
Все форумы / MySQL | ![]() |