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


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

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

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

Оффлайн goldskif

  • Активист
  • *
  • Сообщений: 525
    • Просмотр профиля
    • Альтернативные проекты
Re: MySQL и кодировки
« Ответ #15 : 23 Сентября 2008, 16:39:02 »
раз уж тема зашла.
А как заставить phpMyAdmin отображать читабельно УТ8 ?
Ubuntu дружелюбная система, но друзей  она, сцуко, выбирает сама...

Оффлайн Photon79

  • Новичок
  • *
  • Сообщений: 37
  • Злобный линуксоид
    • Просмотр профиля
Re: MySQL и кодировки
« Ответ #16 : 23 Сентября 2008, 18:38:05 »
А разве он этого делать не умеет?
AthlonXP 2500+, RAM 768, HDD 240, GF4 MX440 64Mb @ Ubuntu 8.10

Аааааа...  Линеечку сломали..  :(

Оффлайн goldskif

  • Активист
  • *
  • Сообщений: 525
    • Просмотр профиля
    • Альтернативные проекты
Re: MySQL и кодировки
« Ответ #17 : 23 Сентября 2008, 20:48:37 »
А разве он этого делать не умеет?
Òåíçîäàò÷èêè â ðû÷àãàõ, óæå èñïîëüçóåòñÿ îãðàíè÷åí
Ubuntu дружелюбная система, но друзей  она, сцуко, выбирает сама...

Оффлайн vadim-nsk

  • Старожил
  • *
  • Сообщений: 1318
  • Жить надо так, как горит пламя!
    • Просмотр профиля
    • Linux в Новосибирске
Re: MySQL и кодировки
« Ответ #18 : 23 Сентября 2008, 20:55:06 »
А разве он этого делать не умеет?
Òåíçîäàò÷èêè â ðû÷àãàõ, óæå èñïîëüçóåòñÿ îãðàíè÷åí
Вам не помешает хоть не много изучить инструмент с которым вы работаете.

Оффлайн goldskif

  • Активист
  • *
  • Сообщений: 525
    • Просмотр профиля
    • Альтернативные проекты
Re: MySQL и кодировки
« Ответ #19 : 23 Сентября 2008, 22:19:09 »
А разве он этого делать не умеет?
Òåíçîäàò÷èêè â ðû÷àãàõ, óæå èñïîëüçóåòñÿ îãðàíè÷åí
Вам не помешает хоть не много изучить инструмент с которым вы работаете.
а чо, просто ответить западло? Или тогда уж отправь гуглить яндекс или курить маны. А в догонку крикни "Ubuntu сама выбирает себе друзей!!"
Ubuntu дружелюбная система, но друзей  она, сцуко, выбирает сама...

Оффлайн Photon79

  • Новичок
  • *
  • Сообщений: 37
  • Злобный линуксоид
    • Просмотр профиля
Re: MySQL и кодировки
« Ответ #20 : 24 Сентября 2008, 12:10:00 »
Ну вообще-то это похоже на то, что данные в базе данных в кодировке windows-1251 (cp1251), так что UTF8 тут совершенно не причем..
AthlonXP 2500+, RAM 768, HDD 240, GF4 MX440 64Mb @ Ubuntu 8.10

Аааааа...  Линеечку сломали..  :(

Оффлайн goldskif

  • Активист
  • *
  • Сообщений: 525
    • Просмотр профиля
    • Альтернативные проекты
Re: MySQL и кодировки
« Ответ #21 : 24 Сентября 2008, 12:26:06 »
Ну вообще-то это похоже на то, что данные в базе данных в кодировке windows-1251 (cp1251), так что UTF8 тут совершенно не причем..
нет, когда они были в 1251 -они читались. Но потом хостинг зачем-то ее конвертировал в УТФ8 (utf8_general_ci).  На сайте-то выглядят нормально, а вот в пхпадминке - крюкозябры.
Ubuntu дружелюбная система, но друзей  она, сцуко, выбирает сама...

Оффлайн Photon79

  • Новичок
  • *
  • Сообщений: 37
  • Злобный линуксоид
    • Просмотр профиля
Re: MySQL и кодировки
« Ответ #22 : 27 Сентября 2008, 16:43:40 »
Ну то, что выставлена опция utf8_general_ci, совершенно не значит, что информация в базе стала utf8.. :)
AthlonXP 2500+, RAM 768, HDD 240, GF4 MX440 64Mb @ Ubuntu 8.10

Аааааа...  Линеечку сломали..  :(

Оффлайн goldskif

  • Активист
  • *
  • Сообщений: 525
    • Просмотр профиля
    • Альтернативные проекты
Re: MySQL и кодировки
« Ответ #23 : 27 Сентября 2008, 17:25:01 »
Ну то, что выставлена опция utf8_general_ci, совершенно не значит, что информация в базе стала utf8.. :)
У вас хобби такое - постить на редкость бесполезные и бессодержательные сообщения?
Ubuntu дружелюбная система, но друзей  она, сцуко, выбирает сама...

Оффлайн Photon79

  • Новичок
  • *
  • Сообщений: 37
  • Злобный линуксоид
    • Просмотр профиля
Re: MySQL и кодировки
« Ответ #24 : 28 Сентября 2008, 06:35:52 »
А у вас хобби на всех наезжать?

а чо, просто ответить западло? Или тогда уж отправь гуглить яндекс или курить маны. А в догонку крикни "Ubuntu сама выбирает себе друзей!!"

У вас хобби такое - постить на редкость бесполезные и бессодержательные сообщения?
AthlonXP 2500+, RAM 768, HDD 240, GF4 MX440 64Mb @ Ubuntu 8.10

Аааааа...  Линеечку сломали..  :(

Оффлайн Nebulosa

  • Активист
  • *
  • Сообщений: 397
    • Просмотр профиля
Re: MySQL и кодировки
« Ответ #25 : 01 Октября 2008, 08:11:40 »
раз уж тема зашла.
А как заставить phpMyAdmin отображать читабельно УТ8 ?
1.Выставить кодировку по умолчанию в my.ini в UTF-8 (это по желанию)
2.Выставить сопоставление соединения с MySQL : ut8_unicode_ci
3. Выставить кодировку базы ut8_unicode_ci и всех таблиц (если там есть какие то данные - удалить их очистив таблицы)
4. Сделать импорт данных в таблицы указав правильную кодировку файла (если там windows -1251, то указанием содержимого utf8 ничего не добьемся), при этом убедится что таблицы не пересоздаются при импорте данных.

Если хотим залить в пустую базу без таблиц, то тогда нужно с дампом проделать такие вещи - переконвертировать дамп базы в utf8 (например через утилитку iconv) и указать для каждой таблицы кодировку ut8_unicode_ci в запросах создания таблиц внутри дампа.

Вот теперь phpMyAdmin отображает читабельно UTF8.

Дальше нужно на сайте перед всеми запросами выполнять запрос SET NAMES UTF8 ну и неплохо бы и сайт перевести на UTF8.. скрипты не участвут, а вот файлы локализании тем же iconv перегнать, да в head в метатегах указать utf-8.

Оффлайн thunderamur

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 6846
    • Просмотр профиля
Re: MySQL и кодировки
« Ответ #26 : 03 Октября 2008, 19:04:39 »
у меня тут тоже проблемка...

Создал БД в пыхадмине с кодировкой utf8_general_ci, создал таблицы и поля с той же кодировкой, в пыхадмине же добавил 1-е записи, в обзоре пыхадмина всё нормально, но в браузере вопросики. И наоборот, то что добавил в браузере видно в браузере и не видно в пыхадмине. Браузер Опера, кодировка на автоопределении, пробовал в ручную менять - не помогло. Метатеги указаны: <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
« Последнее редактирование: 03 Октября 2008, 19:11:20 от Thunde® »

Оффлайн S.Tokarev

  • Активист
  • *
  • Сообщений: 415
    • Просмотр профиля
Re: MySQL и кодировки
« Ответ #27 : 06 Октября 2008, 17:26:40 »
Есть три разные вещи:
1) кодировка базы MySQL. Это точка зрения сервера базы на данные которые у него на диске в полях.
2) кодировка подключения клиента MySQL. Это кодировка в которой клиент обменивается с сервером. Сервер транслирует туда-обратно перед выдачей или записью на диск
3) кодировка скрипта. Это точка зрения скрипта (php) на данные которые считываются из форм или помещаются в элементы массива функциями  mysql_fetch... и прочими. Проявляется только при сортировках.

Чтобы всё было пучком необходимо следить за соответствиями. Не обязательно чтобы всё совпадало, главное чтобы указанные выше компоненты имели правильное представление о кодировках мспользуемых при обменах.

О кодировке базы заботиться не надо особенно. Делайте UTF-8 и не парьтесь.
Отправка данных на сервер
Важно чтобы данные отправленной формы преобразовывалась из кодировки формы в кодировку mysql соединения (не сервера!) перед выполнением UPDATE или INSERT.
Здесь два варианта
1) SET NAMES <эквивалент-кодировки-формы>
2) перекодирование отправленных данных в кодировку mysql_client_encoding на лету.
В этом случае в базу данные попадают адекватно.

Обратная задача - вывод данных
В скрипт с сервера данные попадают в кодировке mysql_client_encoding не зависимо от кодировки базы на сервере
А отображаться должны в кодировке Content-Type.
Тоже два варианта либо тянуть SET NAMES к Content-Type, либо вручную конвертировать данные уже по получении.

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

Если страницу выдаёте в UTF-8, то в начале скрипта отдавайте команду SET NAMES UTF8 ... или что там. Даже если база в koi-8, но сервер имеет доступ к кодовым таблицам, то всё будет красиво. Если страница в Win-1251, то  SET NAMES win1251.

Хуже если уже повтыкали данные в кривых кодировках. Тут надо переделывать. Либо смириться и продолжать лгать серверу ту кодировку которую втулили.

Оффлайн thunderamur

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 6846
    • Просмотр профиля
Re: MySQL и кодировки
« Ответ #28 : 06 Октября 2008, 19:46:07 »
Спасибо, S.Tokarev, после твоего поста и новой попытки найти решение проблемы таки удалось... В поиске нашёл такой совет: mysql_query("SET CHARACTER SET `utf8`");Получилось вообще смешно - то, что записано в пыхадмине, стало видно и на страничке, но то, что записано на страничке не было видно ни на ней, ни в пыхадмине :2funny: Потом таки попробовал mysql_query("SET NAMES `utf8`"); - всё как надо!

Для таких же как я:
Если не совпадает кодировка phpMyAdmin и mySQL, то сразу после подключения к базе в php используйте следущую команду:
mysql_query("SET NAMES `utf8`");

Оффлайн goldskif

  • Активист
  • *
  • Сообщений: 525
    • Просмотр профиля
    • Альтернативные проекты
Re: MySQL и кодировки
« Ответ #29 : 29 Января 2009, 19:36:11 »
Ну так как же все таки заставить phpmyadmin отображать содержимое базы в кодировке утф в читаемом виде?
Ubuntu дружелюбная система, но друзей  она, сцуко, выбирает сама...

 

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