Php my admin charset

Содержание
  1. Отображение кириллицы
  2. 2 Ответ от Hanut 2009-10-06 12:51:25
  3. Re: Отображение кириллицы
  4. 3 Ответ от VGreen 2009-10-07 22:34:38
  5. Re: Отображение кириллицы
  6. 4 Ответ от Hanut 2009-10-08 01:05:42
  7. Re: Отображение кириллицы
  8. 5 Ответ от nostromo 2010-02-06 14:53:29 (изменено: nostromo, 2010-02-06 15:28:39)
  9. Re: Отображение кириллицы
  10. 6 Ответ от Ruskat 2010-02-19 17:48:14
  11. Re: Отображение кириллицы
  12. 7 Ответ от Hanut 2010-02-19 22:17:34
  13. Re: Отображение кириллицы
  14. 8 Ответ от Ruskat 2010-02-20 03:04:48
  15. Re: Отображение кириллицы
  16. 9 Ответ от Hanut 2010-02-20 12:01:47
  17. Re: Отображение кириллицы
  18. 10 Ответ от 4EVERCooL 2010-03-19 10:53:37
  19. Re: Отображение кириллицы
  20. 11 Ответ от Hanut 2010-03-19 12:38:28
  21. Re: Отображение кириллицы
  22. 12 Ответ от Vovik 2011-01-02 10:35:16
  23. Re: Отображение кириллицы
  24. 13 Ответ от DmitryV 2011-01-02 10:59:41 (изменено: DmitryV, 2011-01-02 11:03:26)
  25. Re: Отображение кириллицы
  26. Форум
  27. mysql/phpmyadmin нет кодировки utf8_general_ci
  28. mysql/phpmyadmin нет кодировки utf8_general_ci
  29. Re: mysql/phpmyadmin нет кодировки utf8_general_ci
  30. Re: mysql/phpmyadmin нет кодировки utf8_general_ci
  31. Re: mysql/phpmyadmin нет кодировки utf8_general_ci

Отображение кириллицы

Заносим текст в utf8.
В броузер выводится правильно. в консоли тоже все нормально:
mysql> select keywords from rus_section where/>+———————+
| keywords |
+———————+
| Кириллица |
+———————+

Логично предположить, что MySQL работает нормально.

Но при поросмотре через phpmyadmin, выдает кракозябры:
keywords
. »?». †?°

2 Ответ от Hanut 2009-10-06 12:51:25

Re: Отображение кириллицы

VGreen
Скрипт, которым вы добавляете данные, необходимо поправить таким образом, чтобы он сперва устанавливал корректную кодировку соединения с MySQL.
Если скрипт на PHP, то следует сразу после функции соединения mysql_connect добавить строку:
mysql_query(‘SET NAMES utf8’);

Если не указать скрипту устанавливать кодировку соединения, то она будет браться из глобальных настроек, судя по всему у вас там будет latin1. Глобальную кодировку соединения можно узнать запросом:
SHOW GLOBAL VARIABLES LIKE ‘char%’;

Читайте также:  Index php go playlist

С консолью осторожнее. Перед использованием необходимо настроить ее на работу в требуемой кодировке.

3 Ответ от VGreen 2009-10-07 22:34:38

Re: Отображение кириллицы

Ага понял, похоже что, при не правильной кодировке соединения mysql хранит utf8 в виде последовательности байт, а не символов. Что подтверждается экспериментом, срока в 200 символов обрезается при записи в поле varchar(250).
Скрипт вывода переводит байты обратно в символы и выдает в броузер, создается впечатление что все работает правильно, только myadmin «умничает».
Указание SET NAMES utf8 при вводе и выводе решает проблему.

4 Ответ от Hanut 2009-10-08 01:05:42

Re: Отображение кириллицы

VGreen
Все верно, только данные идут все-же не в виде байт (не бинарно), а в виде номеров из таблицы символов, поэтому получаются крякозябы. То есть: в таблицах символов по одному и тому же номеру в разных кодировках существуют разные символы и при подмене кодировок место символа в таблице остается прежнее, а вот таблица кодировки уже иная. Так и выходит, что обратное превращение крякозяб в читаемый текст тоже вполне объяснимо: место в таблице символов осталось прежнее, а кодировка сменилась на исходную.

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

5 Ответ от nostromo 2010-02-06 14:53:29 (изменено: nostromo, 2010-02-06 15:28:39)

Re: Отображение кириллицы

Уважаемые Господа.
Не стал создавать новую ветку. Прошу ПОМОЩИ.
Установил РМА. Все вроде симпатично, но вот с кодировками такая лажа, что сам разобраться не могу. И в РМА и на сайте и в мускуле вся кирилица . Ну, что надо подправить, подскажите, ну сил не уже никаких. Все сравнения и представления cp1251_general_ci. сайт написан в той-же кодиировке, но везде.

При загрузке РМА внизу пишется:

Версия клиентской библиотеки MySQL (4.1.7) отличается от версии установленного MySQL-сервера (5.0.6). Это может привести к некорректной работе.

Но мне кажется, что к кодировке это не имеет никакого отношения. Пожалуйста помогите.:(

Большое спасибо всем. Проблему решил.

6 Ответ от Ruskat 2010-02-19 17:48:14

Re: Отображение кириллицы

Узнал с вашей помощью вот такое:
Команда:
SHOW GLOBAL VARIABLES LIKE ‘char%’
Результат:
Variable_name Value
character_set_client latin1
character_set_connection latin1
character_set_database latin1
character_set_filesystem binary
character_set_results latin1
character_set_server latin1
character_set_system utf8
character_sets_dir L:\xampp\xampp\mysql\share\charsets\
Как всё настроить так, чтобы избежать каракуль? Бо есть один движок, и май админ ни в какой кодировке не хочет воспринимать базу данных. При попытке залить в ручную пишет:
Ошибка

INSERT INTO SS_categories( categoryID, name, parent, products_count, description, picture, products_count_admin )
VALUES ( 1, ‘Автомобили’, 0, 7, ‘Здесь собраны несколько представителей лучших автомобилей мира’, ‘C1_jaguar.jpg’, 0 ) ;

Ответ MySQL:
#1146 — Table ‘nedvig_map.ss_categories’ doesn’t exist

При установке скриптом заливает, но все тексты получаются . ?? . в виде знаков вопросов.

7 Ответ от Hanut 2010-02-19 22:17:34

Re: Отображение кириллицы

Ruskat
В конфигурационный файл MySQL (my.ini или my.cnf) в разделе [mysqld] добавьте строку:
[mono]init-connect=»SET NAMES cp1251″[/mono]

Это в том случае, если скрипт в кодировке windows-1251.

8 Ответ от Ruskat 2010-02-20 03:04:48

Re: Отображение кириллицы

Hanut, внёс данную команду в my.ini, но опосля апач отказался запускаться. Убрал «нововведение» — запустился.:| Я вот думаю, может там где защита стоит.

9 Ответ от Hanut 2010-02-20 12:01:47

Re: Отображение кириллицы

Ruskat
Не могу сказать причину. Apache вобще-то здесь ни при чем должен быть.

Обратите внимание на данную статью: http://php-myadmin.ru/learning/instrument-intro.html
Возможно вам будет лучше установить веб-сервер с ее помощью, чем мучиться с Xampp.

10 Ответ от 4EVERCooL 2010-03-19 10:53:37

Re: Отображение кириллицы

Здравствуйте! Ну вот, еще один новичок в моем лице с той же головной болью . Только я новичок еще больше, чем все остальные )). ПРоблема у меня в том, что я купил флэшевый шаблон фотосайта у буржуев. Шаблон работает с MySQL+PHP и изначально не поддерживал русский язык, так как буржуям невдомек про Embed и кириллицу. Пришлось декомпилить все самому и править. Теперь самое интересное. Флэш берет например тексты меню из БД мускула, а в мускул они вносятся через пхп админку. БД выдает следующее:
Variable_name Value
character_set_client latin1
character_set_connection latin1
character_set_database latin1
character_set_filesystem binary
character_set_results latin1
character_set_server latin1
character_set_system utf8
character_sets_dir /usr/share/mysql/charsets/
Все таблицы бд были в latin1. Путем слива дампа и корректировки кодировок, перевел некоторые таблицы в утф8. Проблема сейчас в том, что загрузка текстов из админки в БД на русском происходит нормально, флэшем интерпретируется правильно, а вот в PhPMyAdmin в полях базы юникодовские кракозябры. В скрипт соединения с бд я добавил:
mysql_query(«SET NAMES ‘utf8′»);
К тому же, попытался вставить метатеги для странички через админку — тут уже не получается, заголовок страницы в браузере выходит кракозябрами. Прописал напрямую в базе по русски — заголовок выходит по русски, а вот метатеги вот так:
. . . &sup2
В общем, перепробовал уже кучу способов, но ничего не помогает. Я пытаюсь все привести к общему знаменателю, в виде кодировки utf-8, правильно ли я делаю? Спасибо за помощь заранее!

11 Ответ от Hanut 2010-03-19 12:38:28

Re: Отображение кириллицы

4EVERCooL
Лучше всего начинать без данных, тогда будет проще.

1) Делаем дамп таблиц (данных в кириллице быть не должно), или используем имеющийся и правим в нем все latin1 на utf8 (кодировки и сравнения). Затем импортируем этот дамп, все таблицы теперь будут в utf8.
2) Поиском по всем файлам скрипта надо найти вызов функции mysql_connect и добавить после нее [mono]mysql_query(«SET NAMES ‘utf8′»);[/mono]3) Мета теги кодировки страниц должны быть utf-8.
4) Запишите данные из админки в БД и проверьте, чтобы в phpMyAdmin был читаемый русский текст.

Если не получится, то проделайте все то же самое, но замените utf8 на cp1251, возможно есть ограничения для многобайтных кодировок в скрипте.

Как с кодировками работает флеш, я не знаю, поэтому не уверен, что все получится. В любом случае, сохраните все исходные файлы и дамп БД.

12 Ответ от Vovik 2011-01-02 10:35:16

Re: Отображение кириллицы

Variable_name Value
character_set_client latin1
character_set_connection latin1
character_set_database latin1
character_set_filesystem binary
character_set_results latin1
character_set_server latin1
character_set_system utf8

Токая же проблемка была с отображение мета данных, вручную все в правил на utf8_general_ci, после чего руский текст начал нормально отображать, но это:
Variable_name Value
character_set_client latin1
character_set_connection latin1
character_set_database latin1
character_set_filesystem binary
character_set_results latin1
character_set_server latin1
character_set_system utf8

так и осталось может подскажете в пошаговом желательно рижиме_) как это можно убрать исправить

13 Ответ от DmitryV 2011-01-02 10:59:41 (изменено: DmitryV, 2011-01-02 11:03:26)

  • DmitryV
  • Пенсионер
  • Неактивен
  • Откуда: Санкт-Петербург, Россия
  • Зарегистрирован: 2010-07-31
  • Сообщений: 558

Re: Отображение кириллицы

Откройте для редактирования файл «my.ini».
1 — В раздел [client], после строки:
port=3306
добавьте:

character-sets-dir="Ваш путь к /mysql/share/charsets"

2 — в разделе :
[mysql]укажите:

default-character-set=cp1251

3 — в разделе:
[mysqld]укажите:

character-sets-dir="Ваш путь к /mysql/share/charsets" init-connect="SET NAMES cp1251" character-set-server=cp1251

далее все необходимые в скипте значения кодировок если они будут отличны от заданных по умолчанию, задавайте в тексте своих скриптов после соединения с сервером mysql выполнив запрос вида:

mysql_query('SET NAMES нужная кодировка');
mysql_query('SET NAMES utf8');

Источник

Форум

mysql/phpmyadmin нет кодировки utf8_general_ci

mysql/phpmyadmin нет кодировки utf8_general_ci

Привет! Работал ранее на os 5.3.7 с активированным mysql 8 и phpmyadmin вашим, кодировка была на месте. Сегодня дошли руки начисто самую свежую версию поставить 5.4.3 поставил. Выставил также mysql 8, после захожу в phpmyadmin и пытаюсь создать базы чтобы потом восстановить свои дампы, но сейчас в выборе кодировки нет utf8_general_ci и самого раздела utf8

ps я понимаю что для новых проектов лучше использовать utf8mb4_0900_ai_ci я так и делаю. Но у меня все еще есть старые проекты которые должны работать на utf8_general_ci

Re: mysql/phpmyadmin нет кодировки utf8_general_ci

В чём ваш вопрос, в том что в MySQL разработчики убрали кодировку utf8_general_ci? Ну они правильно сделали, кодировка имела большие проблемы с сортировкой. Запускайте ваш проект на совместимой старой версии MySQL, раз ему требуется именно такая старая кодировка.

Re: mysql/phpmyadmin нет кодировки utf8_general_ci

jenokizm писал(а): ↑ 18 сен 2022, 16:17 ps я понимаю что для новых проектов лучше использовать utf8mb4_0900_ai_ci я так и делаю. Но у меня все еще есть старые проекты которые должны работать на utf8_general_ci

Всё на месте, просто называется это сравнение явно: utf8mb3_general_ci для 3-байтовых и utf8mb4_general_ci для 4-байтовых.

Менять в старом коде ничего не надо, старый utf8_general_ci является алиасом для utf8mb3_general_ci и корректно обрабатывает, если он указан в тексте дампа при импорте, например. Но в большинстве случаев ничего не должно сломаться даже и при переходе на новую кодировку, она обратно совместима, можно так выразиться, разве что в редких случаях индексы 4-байтные могут не влезть в ограничение на длинных полях. А при переименовании из «utf8» в явный utf8mb3 ничего вообще не может сломаться, это только лишь названия одного и того же.

Re: mysql/phpmyadmin нет кодировки utf8_general_ci

Максим писал(а): ↑ 18 сен 2022, 16:30 В чём ваш вопрос, в том что в MySQL разработчики убрали кодировку utf8_general_ci?

В том числе и в этом. Я бы понял если бы это сделали в мажорном релизе, но никак не ожидал в минорном обновлении и не смог найти в интернете информации по этому поводу. Я как использовал MySQL 8.0 так и продолжаю его использовать.

SagePointer писал(а): ↑ 19 сен 2022, 11:43 старый utf8_general_ci является алиасом для utf8mb3_general_ci

Спасибо большое! Разобрался. Да это работает для меня.

Что касается перевода всех сайтов на utf8mb4_0900_ai_ci даже если захочу не имею такой возможности. На хостинге бегет до сих пор нет MySQL 8.0, вот скриншот из панели моего хостинга

Источник

Оцените статью