Какую кодировку выбрать в phpmyadmin

от admin

Как изменить кодировку базы данных MySQL?

Если информация из базы данных на сайте отображается некорректно, то может потребоваться изменить кодировку всех таблиц базы данных, рассмотрим как это сделать. MySQL может содержать сотни таблиц, поэтому рекомендуем для оперативной смены кодировки выполнить следующие действия:

1. Откройте phpMyAdmin и выберите из списка нужную базу данных.

Панель phpMyAdmin

2. Откройте раздел SQL. (В столбце сравнение показана кодировка сопоставления)

Таблицы баз данных

3. Скопируйте запрос, представленный ниже, вставьте его в окно SQL-запроса и измените «нужная_кодировка», «сопоставление» и «имя_базы» на кодировку, которая вам требуется, кодировку сопоставления и имя базы соответственно. Далее нажмите кнопку «Вперед».

SELECT CONCAT(‘ALTER TABLE `’, t.`TABLE_SCHEMA`, ‘`.`’, t.`TABLE_NAME`, ‘` CONVERT TO CHARACTER SET нужная_кодировка COLLATE сопоставление;’) as sqlcode
FROM `information_schema`.`TABLES` t
WHERE 1
AND t.`TABLE_SCHEMA` = ‘имя_базы’
ORDER BY 1

Окно запроса

4. В ответе появится список запросов для смены кодировки каждой таблицы. Во вкладке параметры выберите пункт «Полные тексты» и нажмите «Вперед».

Список запросов для смены кодировки БД

5. Скопируйте запросы, которые появились.

Полный список запросов для смены кодировки БД

6. Вернитесь в раздел SQL и вставьте в окно запроса скопированные данные.

Окно запроса

7. Нажмите кнопку «Вперед». Кодировка во всех таблицах базы данных успешно изменена.

Какую кодировку выбрать для базы чтобы можно было сохранять строки на любом языке и не парить себе мозг?

Добавил модель, передаю post данные с кириллицей, save() отрабатывает, но латиница в базу попадает, а от кириллицы пустое место. боюсь предположить, что будет если кто-то напишет на арабском, китайском или хинди. Что делать?

  • Вопрос задан более трёх лет назад
  • 2806 просмотров

Простой 8 комментариев

  • Facebook
  • Вконтакте
  • Twitter

sim3x

a_u_sinitsin

a_u_sinitsin

a_u_sinitsin

a_u_sinitsin

SerafimArts

Стоит везде выставить utf8mb4_unicode_ci (работает точнее при сортироваках и проч.) или utf8mb4_general_ci (чуть быстрее работает, крайне незначительно, так что имеет смысл именно первый вариант).

Какую кодировку выставить таблице?

Всем привет, скажите вот я написал программу которая работает с Базой Данных mySQL, так вот когда тестировал на Денвере всё было нормально и по русски, но когда перебрался на хостинг все русские слова стали . хотя кодировку не менял. Так вот может надо другую кодировку поставить чтобы русский поддерживался? У меня стоит cp1250_general_ci

Кто-то удалил свой ответ, а вместе с ним ушли в горы мои коментарии.

Вы сказали, что в самой базе на хостинге у вас отображаются знаки вопросов. В phpMyAdmin на хостинге у вас, как я понял, доступ есть. Поэтому создаете БД, «Сравнение» выбираете utf8_general_ci. Дамп локальной базы не упаковываете! Заходим на закладку «Экспорт», снимаем внизу, если стоит, галочку «Сохранить как файл» и жмём «Ок». Копируем в появившемся поле весь дамп, идём в phpMyAdmin на хостинге. Выбираем созданную базу, далее на закладку «SQL», вставляем из буфера сохраненный дамп и жмем «Ок». Вот, как бы и всё. Если база на локалке большая, то возможно придётся переносить каждую таблицу по отдельности. И хорошо бы еще до снятия дампа привести все поля в «Сравнение» utf8_general_ci.

Смена кодировки базы в phpMyAdmin (Страница 1 из 10)

Здрасте!Мне понадобилось поменять кодировку с (utf8) на Russian win-1251
Выкладки там две 1. Сопоставление соединения с MySQL: cp1251_bin 2. Language я так понимаю это язык phpMyAdmin там все utf8! А вот напротив MySQL-кодировка: выкладки нет там просто написано
UTF-8 Unicode (utf8)!

2 Ответ от Rash 2006-02-19 17:53:31

  • Зарегистрирован: 2006-01-28
  • Сообщений: 122
Re: Смена кодировки базы в phpMyAdmin

hasem
Если я не ошибаюсь, то тебе нужна кодировка cp1251_general_ci (Кириллическая нечувствительная к регистру). Если позволяют привилегии выполни следующие запросы для таблиц данной базы данных, а затем и для самой базы данных
ALTER TABLE table1 CONVERT TO CHARACTER SET cp1251_general_ci
ALTER TABLE table1 DEFAULT CHARACTER SET cp1251_general_ci
ALTER DATABASE database1 DEFAULT CHARACTER SET cp1251_general_ci

3 Ответ от apata 2006-06-05 10:30:14

  • Зарегистрирован: 2006-06-05
  • Сообщений: 9
Re: Смена кодировки базы в phpMyAdmin

Доброго времени суток! Подскажите, а чтобы кои8-р кодировка везде была, это просто вместо cp1251_general_ci нужно поставить koi8r_bin или
koi8r_general_ci?? или как-то по-другому? Заранее благодарна

4 Ответ от Rash 2006-06-07 05:45:15

  • Зарегистрирован: 2006-01-28
  • Сообщений: 122
Re: Смена кодировки базы в phpMyAdmin

apata

5 Ответ от apata 2006-06-08 09:04:54

  • Зарегистрирован: 2006-06-05
  • Сообщений: 9
Re: Смена кодировки базы в phpMyAdmin

Подскажите, пожалуйста, а можно ли сделать так, чтоб в MySQL по умолчанию была кодировка koi8r? у меня стоит apache2+php5.1.2+MySQL5.0.19+phpMyAdmin2.8.1? Спасибо!

6 Ответ от Rash 2006-06-08 23:36:36

  • Зарегистрирован: 2006-01-28
  • Сообщений: 122
Re: Смена кодировки базы в phpMyAdmin

Подскажите, пожалуйста, а можно ли сделать так, чтоб в MySQL по умолчанию была кодировка koi8r?

проверь в my.ini/my.cnf следующие строчки:
[mysqld]
basedir="c:/путь/mysql/"
datadir="c:/путь/mysql/data/"
character-sets-dir="c:/путь/mysql/share/charsets"
default-character-set="koi8r"
default-collation="koi8r_general_ci"
character-set-server="koi8r"

7 Ответ от apata 2006-06-09 07:10:45

  • Зарегистрирован: 2006-06-05
  • Сообщений: 9
Re: Смена кодировки базы в phpMyAdmin

Спасибо большое! И если можно еще вопросик: а как сделать так, чтобы в базе кодировка была не важно какой, а вывод броузер корректно отображал кодировку koi8r? это в апаче надо задать или пхп или там и там? Спасибо!

8 Ответ от Experior 2006-06-09 08:58:53

  • Зарегистрирован: 2006-05-24
  • Сообщений: 46
Re: Смена кодировки базы в phpMyAdmin

apata
Если у тебя в базе данные лежат в кодировке отличной от koi8r, то вывести в браузер в этой кодировке будет проблематично. Если конечно это не Юникод, в этом случае, если я не ошибаюсь кодировку указывать браузеру необязательно. ИМХО, конечно.

9 Ответ от apata 2006-06-09 13:30:28

  • Зарегистрирован: 2006-06-05
  • Сообщений: 9
Re: Смена кодировки базы в phpMyAdmin

А если это юникод (это ведь кодировка по умолчанию в MySQL?) то как это сделать в апаче нужно прописывать или пхп?

10 Ответ от Experior 2006-06-09 14:21:33

  • Зарегистрирован: 2006-05-24
  • Сообщений: 46
Re: Смена кодировки базы в phpMyAdmin

apata
вообще-то кодировка по умолчанию в MySQL выставляется latin1.
И в Апаче ничего прописывать не надо, можешь браузеру скармливать <meta http-equiv="Content-Type" content="text/html; charset=KOI8-R">

11 Ответ от Ноябрь 2006-07-09 04:55:09

  • Зарегистрирован: 2006-07-09
  • Сообщений: 1
Re: Смена кодировки базы в phpMyAdmin

Мне нужно перевести базу данных в cp1251_general_ci, на моем локальном сервере, в установленом денвере phpmyadmin настроен так, что в закладке операции есть поле сравнение, в котором я легко могу перевести таблицу из одного формата в другой, как настроить phpmyadmin 2.8.1, стоящий на сервере таким же образом?.
Я попробовал использовать тот же скл-запрос генерируем на локальном сервере, вышла ошибка синтаксиса..
ALTER DATABASE `g` DEFAULT CHARACTER SET cp1251 COLLATE cp1251_general_ci
на сервере MySQL — 4.0.15

Читать:
Что такое пул адресов

12 Ответ от Lokki 2006-07-15 12:21:10

  • Откуда: Москва
  • Зарегистрирован: 2006-01-25
  • Сообщений: 910
Re: Смена кодировки базы в phpMyAdmin

Ноябрь

ALTER DATABASE `g` DEFAULT CHARACTER SET cp1251 COLLATE cp1251_general_ci

ALTER DATABASE `g` DEFAULT CHARACTER SET cp1251_general_ci

13 Ответ от Aire 2007-06-04 10:33:06 (изменено: Aire, 2007-06-04 10:37:45)

  • Зарегистрирован: 2007-06-04
  • Сообщений: 1
Re: Смена кодировки базы в phpMyAdmin

У меня возникла такая проблема — по сути дела, исходные данные те же — нужно сделать дамп в кодировке ср1251, но запросы к БД не проходят.
Проблема возникает на хостинге Джино — его бесплатной версии, phpMyAdmin 2.6.3-pl1, MySQL 5.0.18. MySQL-кодировка: UTF-8 Unicode (utf8), Сопоставление соединения с MySQL cp1251_general_ci.

на запросы ALTER DATABASE the-necklace DEFAULT CHARACTER SET cp1251 COLLATE cp1251_general_ci; ALTER DATABASE the-necklace DEFAULT CHARACTER SET cp1251, а также ALTER DATABASE the — necklace DEFAULT CHARACTER SET cp1251_general_ci

выдает следующее сообщение — #1064 — You have an error in your SQL syntax; check the manual that corresponds to your MySQL serv version for the right syntax to use near 'the-necklace' DEFAULT CHARACTER SET cp1251 COLLATE cp1251_general_ci' at line 1.

Честно, я не знаю, какие там отличия в пятых версиях MySQL. А при переезде на новый, платный хостинг дампы БД оказываются не валидными — то, что прописано непосредственно в файлах php, отображается корректно. Содержимое БД — полностью "закодированно".

14 Ответ от Hanut 2007-06-04 14:04:30

  • Откуда: Рига, Латвия
  • Зарегистрирован: 2006-07-02
  • Сообщений: 9,724
Re: Смена кодировки базы в phpMyAdmin

Aire
Попробуйте забрать имя БД в косые кавычки — `the-necklace`.

Посмотрите на отличия в настройках сервера MySQL на хостах.

15 Ответ от nextkmv 2009-01-09 09:31:19

  • Откуда: Пятигорск
  • Зарегистрирован: 2009-01-09
  • Сообщений: 4
Re: Смена кодировки базы в phpMyAdmin

Доброго времени суток. Возникла следующая проблема:
Имеется удалённая БД на бесплатном хостинге (доступ к my.cnf нету) кодировка базы utf8-ru. При добавлении записи данные в таблице имеют вид ". " попытки изменения кодировки ни к чему не привели. Чем поможете заранее благодарен.

16 Ответ от Hanut 2009-01-09 14:34:50

  • Откуда: Рига, Латвия
  • Зарегистрирован: 2006-07-02
  • Сообщений: 9,724
Re: Смена кодировки базы в phpMyAdmin

Чем идет добавление записи? Где вопросики отображаются, на сайте? Как выглядят данные в phpMyAdmin?
В phpMyAdmin выполните следующий SQL запрос и покажите его вывод:

17 Ответ от nextkmv 2009-01-09 21:07:08

  • Откуда: Пятигорск
  • Зарегистрирован: 2009-01-09
  • Сообщений: 4
Re: Смена кодировки базы в phpMyAdmin

Добавление происходит через скрипт на удалённом сервере

Вопросики отображаются в phpMyadmin на удалённом сервере. На локальном в денвере всё отображается корректно.
Результат SHOW VARUABLES

18 Ответ от Hanut 2009-01-10 01:38:48

  • Откуда: Рига, Латвия
  • Зарегистрирован: 2006-07-02
  • Сообщений: 9,724
Re: Смена кодировки базы в phpMyAdmin

nextkmv
Вам необходимо установить кодировку соединения с MySQL в utf8, для чего сразу после функции соединения mysql_connect(), необходимо добавить следующую строку:

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

19 Ответ от nextkmv 2009-01-10 04:50:11

  • Откуда: Пятигорск
  • Зарегистрирован: 2009-01-09
  • Сообщений: 4
Re: Смена кодировки базы в phpMyAdmin

К сожалению не помогло. До этого там стаяла CMS joomla она всё корректно показывала хм.. буду её мучать. Всё равно СПАСИБО

20 Ответ от nextkmv 2009-01-10 05:30:16

  • Откуда: Пятигорск
  • Зарегистрирован: 2009-01-09
  • Сообщений: 4
Re: Смена кодировки базы в phpMyAdmin

Наконец то получилось

21 Ответ от nik 2009-02-08 13:45:08

  • Зарегистрирован: 2009-02-08
  • Сообщений: 11
Re: Смена кодировки базы в phpMyAdmin

Доброго времени суток.При заполнении таблицы столбец сравнения оставляю пустым.А после сохранения в нем появляется кодировка cp1251_general_ci.В браузере же вместо нормального языка вижу только это: .

22 Ответ от Hanut 2009-02-08 15:13:49

  • Откуда: Рига, Латвия
  • Зарегистрирован: 2006-07-02
  • Сообщений: 9,724
Re: Смена кодировки базы в phpMyAdmin

nik
1) Не используйте пользователя root при подключении скрипта.
2) Покажите вывод запроса.

3) Укажите используемый скрипт.
4) Укажите кодировку страниц сайта.
5) Локальный или удаленный сервер? Есть ли доступ к конфигурационному файлу MySQL?
6) Как данные отображаются в phpMyAdmin?

23 Ответ от nik 2009-02-11 11:08:32

  • Зарегистрирован: 2009-02-08
  • Сообщений: 11
Re: Смена кодировки базы в phpMyAdmin

1)Сделал.
2)character_set_client cp1251
character_set_connection cp1251
character_set_database cp1251
character_set_filesystem binary
character_set_results cp1251
character_set_server cp1251
character_set_system utf8
character_sets_dir C:\Program Files\MySQL\MySQL Server 5.0\share\char.
3)phpMyAdmin3.0.1.1.
4)charset=windows-1251
5)Локальный сервер.Apache/2.2.10 (Win32) PHP/5.2.6.Версия MySQL-клиента: 5.0.51a.
Доступ к конфигурационному файлу есть.
6)Русским языком.
Добавил через сайт в таблицу строку на русском.Открыл таблицу в добавленной строке кракозябры .
Сделал запрос строки через сайт в браузере нормальный русский язык.
Может дело в том что MySQL-кодировка: UTF-8 Unicode (utf8)?

24 Ответ от Hanut 2009-02-11 15:50:07

  • Откуда: Рига, Латвия
  • Зарегистрирован: 2006-07-02
  • Сообщений: 9,724
Re: Смена кодировки базы в phpMyAdmin

nik
В my.ini, раздел [mysqld], добавьте строку:
init-connect="SET NAMES cp1251"

Также в разделах [mysql] и [mysqld] отредактируйте:
default-character-set=cp1251

По пункту №2 — очень странно. С такими настройками быть крякозябов вида . в phpMyAdmin не должно. Убедитесь, что и БД и таблицы имеют кодировку cp1251, причем их надо пересоздавать заново, чистыми, если это возможно.
В пункте №3 имелся в виду используемый скрипт: форум какой-то или собственная поделка.

25 Ответ от nik 2009-02-15 10:21:24

  • Зарегистрирован: 2009-02-08
  • Сообщений: 11
Re: Смена кодировки базы в phpMyAdmin

[bHanut/b]
Здраствуйте.
Эти строки в разделах уже есть.
Пробовал и БД и таблицы создовал в одной кодировке эффект тот же.
Да вобщем никакого скрипта нет просто запрос к БД.
У меня есть файл по которому настраивал может там какая ошибка?

Сообщения с 1 по 25 из 226

Страницы 1 2 3 … 10 Далее

Чтобы отправить ответ, вы должны войти или зарегистрироваться

Форум работает на PunBB , при поддержке Informer Technologies, Inc

Currently installed 7 official extensions . Copyright © 2003–2009 PunBB.

Related Posts