1

Тема: Смена кодировки базы в phpMyAdmin

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

2

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

Re: Смена кодировки базы в phpMyAdmin

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

4

Re: Смена кодировки базы в phpMyAdmin

apata

koi8r_general_ci

5

Re: Смена кодировки базы в phpMyAdmin

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

6

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

Re: Смена кодировки базы в phpMyAdmin

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

8

Re: Смена кодировки базы в phpMyAdmin

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

9

Re: Смена кодировки базы в phpMyAdmin

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

10

Re: Смена кодировки базы в phpMyAdmin

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

11

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

Re: Смена кодировки базы в phpMyAdmin

Ноябрь

ALTER DATABASE `g` DEFAULT CHARACTER SET cp1251 COLLATE cp1251_general_ci

ALTER DATABASE `g` DEFAULT CHARACTER SET cp1251_general_ci

Нет неразрешимых проблем, есть неприятные решения. (Э. Борн)

13

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, отображается корректно. Содержимое БД - полностью "закодированно".

Отредактировано Aire (2007-06-04 10:37:45)

14

Re: Смена кодировки базы в phpMyAdmin

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

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

ВКонтакте Facebook Twitter

15

Re: Смена кодировки базы в phpMyAdmin

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

16

Re: Смена кодировки базы в phpMyAdmin

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

SHOW GLOBAL VARIABLES LIKE 'char%';

ВКонтакте Facebook Twitter

17

Re: Смена кодировки базы в phpMyAdmin

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

$result=mysql_query("INSERT INTO `id` ( `ID` , `Server` , `Urlpage` , `Player` , `Fname` , `Disc` , `janre` , `Tag1` , `Tag2` )
VALUES ('', '$link', '$page', '$player', '$fname', '$disc', NULL , NULL , NULL);", $link_id);

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

character_set_client      latin1
character_set_connection     latin1
character_set_database     latin1
character_set_results     latin1
character_set_server     latin1
character_set_system     utf8
character_sets_dir     /home/users/disk1/mysql-srv/share/mysql/charsets/

18

Re: Смена кодировки базы в phpMyAdmin

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

mysql_query('SET NAMES utf8');

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

ВКонтакте Facebook Twitter

19

Re: Смена кодировки базы в phpMyAdmin

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

20

Re: Смена кодировки базы в phpMyAdmin

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

mysql_query('SET NAMES cp1251');

БОООООЛЬШОЕ СПАСИБО!!!!!!!!!

21

Re: Смена кодировки базы в phpMyAdmin

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

22

Re: Смена кодировки базы в phpMyAdmin

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

SHOW GLOBAL VARIABLES LIKE 'char%';

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

ВКонтакте Facebook Twitter

23

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

Re: Смена кодировки базы в phpMyAdmin

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

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

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

ВКонтакте Facebook Twitter

25

Re: Смена кодировки базы в phpMyAdmin

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