Форум русскоязычного сообщества Ubuntu


Считаете, что Ubuntu недостаточно дружелюбна к новичкам?
Помогите создать новое Руководство для новичков!

Автор Тема: Проблема с кодировками в сервере MySQL  (Прочитано 2287 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28511
    • Просмотр профиля
Re: Проблема с кодировками в сервере MySQL
« Ответ #30 : 12 Апреля 2011, 01:29:31 »
Мой подход характерен для практика - сначала самое вероятное, которое поможет (и будет использовано) в 99% случаев (подтверждение - этот топик).
К вашему счастью, предложенное вами решение, как максимум, могло повредить только новые записи в базе данных.

Цитировать
ЗЫ Что вы сказали-бы врачу, который при опухшей руке, после удара, отправил-бы вас сначала провериться на паразитов (чисто теоретически - возможный вариант), а потом уж, через пару дней, на рентген? Или вы предпочтете именно такой подход, а иначе обвините врача в недостатке знаний, а теоретик вы наш?
Я ещё ни разу не встречал врача, который бы стал куда-то отправлять меня (ваш подход), не задав кучу вопросов о том, что произошло, чем я занимался и что чувствовал, не пощупав руку собственноручно и т.д. (мой подход)
Есть желание продолжать спор?
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…

Оффлайн shumtest

  • Активист
  • *
  • Сообщений: 731
  • Это вам просто кажется...
    • Просмотр профиля
    • Блог Шумомера
Re: Проблема с кодировками в сервере MySQL
« Ответ #31 : 12 Апреля 2011, 01:48:27 »
Есть желание продолжать спор?
Неа. Скучно и никого ни в чем не убедит. Смысла не вижу. (Но это не значит что я с вами согласился - лучший арбитр - жизнь, практика - а она уже все показала - см.топик).

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28511
    • Просмотр профиля
Re: Проблема с кодировками в сервере MySQL
« Ответ #32 : 12 Апреля 2011, 02:22:13 »
Есть желание продолжать спор?
Неа. Скучно и никого ни в чем не убедит. Смысла не вижу. (Но это не значит что я с вами согласился - лучший арбитр - жизнь, практика - а она уже все показала - см.топик).
Один частный случай - не показатель.
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…

Оффлайн haligali

  • Автор темы
  • Новичок
  • *
  • Сообщений: 17
    • Просмотр профиля
Re: Проблема с кодировками в сервере MySQL
« Ответ #33 : 12 Апреля 2011, 16:53:24 »
AnrDaemon

4. Есть же, наконец, просто правильное решение проблемы. (И оно не такое, к которому в итоге пришли.)


Хм... Интересно а какое правильное! Хотя-бы намекните, я уж найду что почитать на эту тему.
В мире все совсем не сложно, если самому не усложнять

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28511
    • Просмотр профиля
Re: Проблема с кодировками в сервере MySQL
« Ответ #34 : 12 Апреля 2011, 16:56:08 »
AnrDaemon

4. Есть же, наконец, просто правильное решение проблемы. (И оно не такое, к которому в итоге пришли.)


Хм... Интересно а какое правильное! Хотя-бы намекните, я уж найду что почитать на эту тему.
Мы чуть выше обсуждали его с podkovyrsty. В идеале, клиент при подключении к БД (mysql_connect присной памяти) передаёт серверу свои локальные (LOCALE) настройки, и MySQL подстраивается под них для этого соединения. MySQL/PHP коннектор это тоже делает, только доступа к настройкам этого параметра у него, похоже, нет. Или я разучился читать документацию. Вот и получается в итоге latin1 на стороне клиента...
« Последнее редактирование: 12 Апреля 2011, 16:58:02 от AnrDaemon »
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…

Оффлайн shumtest

  • Активист
  • *
  • Сообщений: 731
  • Это вам просто кажется...
    • Просмотр профиля
    • Блог Шумомера
Re: Проблема с кодировками в сервере MySQL
« Ответ #35 : 12 Апреля 2011, 20:17:26 »
Настройки вобщем-то есть, но:

php.ini: default_charset (может поломать другие скрипты)
script: setlocale() (опасная функция если скрипт окажется под виндой, т.к. действует на параллельные потоки)
script: mysql_set_charset - рекомендованная замена SET NAMES (но только в мускуле старше 5.0.7)

ну еще вот так изгаляются:
mysql_query("SET character_set_results = 'utf8', character_set_client = 'utf8', character_set_connection = 'utf8', character_set_database = 'utf8', character_set_server = 'utf8'");
но не вижу особого смысла.

других не знаю. да и не искал особо, т.к. set names практически всегда и везде работает и не влияет ни на что кроме текущего сеанса.

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28511
    • Просмотр профиля
Re: Проблема с кодировками в сервере MySQL
« Ответ #36 : 12 Апреля 2011, 20:22:54 »
character_set_database менять на лету нет никакого смысла.
character_ser_server вообще тут не к месту.
(При том, что у обычного пользователя может не быть прав на эти две переменных.)

_client/_connection/_result меняется одновременно по SET NAMES.

На счёт текущего сеанса... ты не забыл ещё, что сеанс может длиться "несколько" дольше, чем выполняется скрипт?
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…

Оффлайн shumtest

  • Активист
  • *
  • Сообщений: 731
  • Это вам просто кажется...
    • Просмотр профиля
    • Блог Шумомера
Re: Проблема с кодировками в сервере MySQL
« Ответ #37 : 12 Апреля 2011, 21:49:53 »
character_set_database менять на лету нет никакого смысла.
character_ser_server вообще тут не к месту.
(При том, что у обычного пользователя может не быть прав на эти две переменных.)

_client/_connection/_result меняется одновременно по SET NAMES.
1) Я же написал - изгаляются (извращаются, если так понятнее)
2) Ты-же не любишь SET NAMES :)

На счёт текущего сеанса... ты не забыл ещё, что сеанс может длиться "несколько" дольше, чем выполняется скрипт?
пконнект? ну кто его юзает - думаю и сам с кодировками разберется. или ты о чем? (может мы разный смысл в слово "сеанс" вкладываем?) только не говори что ты о работе через промежуточного демона. уж с этим-то точно не новички работают, с кодировками и сами не запутаются.

ЗЫ вообще - надоело. теоретический треп о сферическом банане...
« Последнее редактирование: 12 Апреля 2011, 21:52:45 от shumtest »

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28511
    • Просмотр профиля
Re: Проблема с кодировками в сервере MySQL
« Ответ #38 : 12 Апреля 2011, 22:03:37 »
Я не "не люблю SET NAMES", а не люблю, когда его лепят куда попало. Типа "SET NAMES ...; SELECT * FROM ...;"
pconnect включен в php по умолчанию... это так, для справки.
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…

Оффлайн shumtest

  • Активист
  • *
  • Сообщений: 731
  • Это вам просто кажется...
    • Просмотр профиля
    • Блог Шумомера
Re: Проблема с кодировками в сервере MySQL
« Ответ #39 : 12 Апреля 2011, 22:22:21 »
Офигеть... Я, кажется, наконец-то понял, что тебе не понравилось в моем изначальном сообщении.

Моя запись "SET NAMES ...; SELECT * FROM ...;" всего-лишь подразумевает что перед реальной работай (до селекта в случае ТС) надо выполнить SET NAMES. А ты видать понял это как призыв добавить SET NAMES ...; к каждому запросу? Может и впрямь не корректно получилось... Или я опять не понимаю чего-то? На разных языках мы говорим... Моя твоя не понимай...

pconnect включен в php по умолчанию... это так, для справки.
эээ..? опять моя твоя не понимай. поясни, плиз.

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28511
    • Просмотр профиля
Re: Проблема с кодировками в сервере MySQL
« Ответ #40 : 12 Апреля 2011, 23:43:25 »
Офигеть... Я, кажется, наконец-то понял, что тебе не понравилось в моем изначальном сообщении.

Моя запись "SET NAMES ...; SELECT * FROM ...;" всего-лишь подразумевает что перед реальной работай (до селекта в случае ТС) надо выполнить SET NAMES. А ты видать понял это как призыв добавить SET NAMES ...; к каждому запросу? Может и впрямь не корректно получилось...
Именно. До конца свою мысль договаривать надо. (Плюс, в зависимости от используемого модуля подключения к БД, опять же, есть варианты.)

Цитировать
Или я опять не понимаю чего-то? На разных языках мы говорим... Моя твоя не понимай...
Понимай-то она понимай, только мысли не читай.

Цитировать
pconnect включен в php по умолчанию... это так, для справки.
эээ..? опять моя твоя не понимай. поясни, плиз.

mysql.allow_persistent -> On -> On
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…

Оффлайн shumtest

  • Активист
  • *
  • Сообщений: 731
  • Это вам просто кажется...
    • Просмотр профиля
    • Блог Шумомера
Re: Проблема с кодировками в сервере MySQL
« Ответ #41 : 14 Апреля 2011, 07:57:13 »
mysql.allow_persistent -> On -> On
Кхм.. Это всего-лишь разрешение использовать пконнект, а не включение его по умолчанию (а то я уж испугался что чего-то пропустил в этой жизни). Т.ч. "pconnect включен в php по умолчанию" не корректное утверждение :)

ЗЫ ТС - закрой уже тему, а то мы с демоном ее до 100 страниц раздуем :)

 

Страница сгенерирована за 0.033 секунд. Запросов: 27.