Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

MySQL collacation & charset encoding

1.8K
19 августа 2010 года
Kama
153 / / 04.05.2006
всем привет.
У меня вопрос... ответьте кто знает пожалуйста.
Есть база данных на MySQL, все что там хранится должно отображаться корректно, я про (UTF8).
Скорее всего раньше была другая кодировка и сравнение, но после вчерашнего не думаю, тем более введя коману SHOW FULL COLUMN FROM TABLE_NAME, я увидел что там сеичас utf8_general_ci.
Вопрос состоит в следующем, почему эта тупая база данных по прежнему хранит всякие иероглифы(точнее продолжает записывать)? На своем localhost пытался поменять, получилось.
База данных находится на удаленном сервере причем там phpmyadmin`a нет. не работает MySQL Workbench почему-то, раньше работал, сейчас какуе-то ерунду пишет(что память занята), даже подсоединятся не хочет.
В общем работаю через ssh соединение.
253
19 августа 2010 года
Proger_XP
1.5K / / 07.08.2004
Может быть проблемы не с кодировкой БД/таблиц (раз вы их смотрели и там Юникод), а в кодировке соеденения, которую надо выставлять при каждом его открытии. Ну, то есть эти традиционно нерекомендуемые:
 
Код:
mysql_query("SET character_set_client='utf8'", $connection);
    mysql_query("SET character_set_results='utf8'", $connection);
    mysql_query("SET collation_connection='utf8_unicode_ci'", $connection);
1.8K
20 августа 2010 года
Kama
153 / / 04.05.2006
не знал что и такое есть чесно говоря, почитаю, но проблемма не решина, я все же думаю что это проблемма с БД, так как в ssh сессии, производя выборку я получаю непонятно что....
253
20 августа 2010 года
Proger_XP
1.5K / / 07.08.2004
По SSH вообще трудно получить нормальные символы, если вывод делается в Юникоде. А вы получаете вопросы вместо каких-то символов или они просто корёжатся? Если вопросы - однозначно проблема с кодировкой таблицы, если корёжатся, то надо подумать над тем, как вы вводите инфу в БД - видимо глючит где-то по дороге к ней.
1.8K
23 августа 2010 года
Kama
153 / / 04.05.2006
Сегодня я заметил что к БД идут два соединения (odbc_connect) каздая из них записывает нормально но только для себя. Я говорю о том что если сохранить данные через админ панель, в админке эти данные будут отображаться, во фронт-енде данные отображаются только вопросами. Если же записать с фроненда то данные превращаються в каракули в админке. Что делать не знаю. Конечно предложить снести одно соединение можно, но там так все tak запущено, это настоящая мусорка кода что прейдется переписвать заново. Может в настройках где-то только подправить? В гоогле искал подходящего пока не нашел, заранее спасибо.
2
24 августа 2010 года
squirL
5.6K / / 13.08.2003
Цитата: Kama
всем привет.

Вопрос состоит в следующем, почему эта тупая база данных по прежнему хранит всякие иероглифы(точнее продолжает записывать)?


"тупая база" хранит иероглифы потому, что тупой пользователь базы совершенно не считает нужным читать документацию.

1.8K
30 августа 2010 года
Kama
153 / / 04.05.2006
Цитата: squirL
"тупая база" хранит иероглифы потому, что тупой пользователь базы совершенно не считает нужным читать документацию.



Для такого умного как ты повторяю :

Цитата: squirL

В гоогле искал подходящего пока не нашел, заранее спасибо.

2
30 августа 2010 года
squirL
5.6K / / 13.08.2003
Цитата: Kama
Для такого умного как ты повторяю :


я умею читать. я не понимаю, с какого перепугу нужно искать информацию в google, когда можно зайти на http://dev.mysql.com/doc/refman/5.1/en
и потратить несколько часов на изучение главы 9.1. там четко описано - какие параметры, относятся к charset & collation и как они влияют на разные аспекты сохранения и отображения информации.
я вот совсем не понимаю, зачем создавать себе лишний труд - лазить на форум, постить, ждать, лопатить гугл... когда все есть на сайте производителя?

2
02 сентября 2010 года
squirL
5.6K / / 13.08.2003
Цитата: Proger_XP
По SSH вообще трудно получить нормальные символы, если вывод делается в Юникоде.


я получаю без проблем. ЧЯДНТ?

253
03 сентября 2010 года
Proger_XP
1.5K / / 07.08.2004
Цитата: squirL
я получаю без проблем. ЧЯДНТ?


Ты всё делаешь правильно, о squirL, просто мне до твоих десятилетних навыков ой как далеко ещё :) Поэтому и говорю, как знаю.
По теме - нужно просто сменить настройки SSH клиента или есть ещё какая-то команда вроде chcp для винды?

2
03 сентября 2010 года
squirL
5.6K / / 13.08.2003
Цитата: Proger_XP
Ты всё делаешь правильно, о squirL, просто мне до твоих десятилетних навыков ой как далеко ещё :)



навыки тут не причем. просто нужно один раз разобраться - что есть локаль, какие кодировки используются при коннекте к базе, как база хранит данные, какие настройки твоего клиента ssh. и все будет шоколадно.

1.8K
08 сентября 2010 года
Kama
153 / / 04.05.2006
поменял кодировку в ssh. Оказалось что БД хранила данные правильно. Как и предполагалась ранее "неправельная" кодировка "болталась" при соединении. А где именно я потом увидел... Короче это долгая история. :) Одним словом подставив команду odbc_exec($this->cid,"SET NAMES utf8"); все получилось:)
Спасибо всем за участие.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог