1

Тема: Содержимое таблиц отображается кракозяброй.

Содержимое таблиц отображается кракозяброй (??????? ????????????? ????...), хотя сам PHPMYADMIN на русском. Где и что нужно переключить?

Заранее спсибо за ответ.

2

Re: Содержимое таблиц отображается кракозяброй.

roman

Содержимое таблиц отображается кракозяброй (??????? ????????????? ????...), хотя сам PHPMYADMIN на русском. Где и что нужно переключить?

По всей видимости кодировка дампа не совпадает с кодировкой базы данных. Чтобы наглядно оценить  проблему набери выполни запрос: "SHOW VARIABLES LIKE 'character%'". В результате ты сможешь посмотреть кодировку клиента, mysql-сервера, базы данных.

Если база данных не создана, то при создании указать необходимое сопоставление (Collation), напр. cp1251_general_ci для кодировки cp1251 (он же Windows-1251). Если база уже создана, то текущее сопоставление можно изменить при необходимости на вкладке 'Operations'. Затем на вкладку 'Import', указываешь локальный адрес дампа, а также кодировку дампа, остается импортировать дамп. Все.

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

3

Re: Содержимое таблиц отображается кракозяброй.

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

Так ведь на сайте все по русски, а в phpmyadmin "русские буквы" отображаются кракозябрами. Как импраить не конвертируя БД?

4

Re: Содержимое таблиц отображается кракозяброй.

roman
Попробуй так:
Браузер -> Вид -> Кодировка -> Выбери нужную (начни хоть бы с utf8)

Почему у тебя кодировки сервера и базы данных 'latin1'?:
character_set_database latin1
character_set_server latin1

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

5

Re: Содержимое таблиц отображается кракозяброй.

По дефолту такая стаяла после установки mysql из портов freebsd.

6

Re: Содержимое таблиц отображается кракозяброй.

roman
не всегда,  предлагаемое по дефолту приемлимо на практике

7

Re: Содержимое таблиц отображается кракозяброй.

У меня точь-в-точь проблема.
ОС Windows, Версия MySql 5. В таблицах PhpMyAdmin 2.6.4-pl4 но до этой стояла 2.7 с ней тоже были такие же проблемы. На сайте все отображается нормально, а в таблицах PhpMyAdmin в место русский букв козебяки
Попробовал создать БД так как описано:

Lokki пишет:

Если база данных не создана, то при создании указать необходимое сопоставление (Collation), напр. cp1251_general_ci для кодировки cp1251 (он же Windows-1251).

Сообщения с русскими буквами ваще не записываются, т.е. запись не создается вовсе. Сервер выдает ошибку.
Выполнил этот запрос

Lokki пишет:

SHOW VARIABLES LIKE 'character%'

результат тот же что у roman

character_set_connection latin1
character_set_database latin1

изменил на cp1251_general_ci

а
character_set_server
хз как!!!

Подскажите, пожалуйста, какие параметры и как надо поставить, чтобы все работало нормально.
Заранее большое спасибо.

8

Re: Содержимое таблиц отображается кракозяброй.

а
character_set_server
хз как!!!

В файле my.ini (он же my.cnf) в директиве [server] изменить или добавить строку:
default-character-set=cp1251
Также не забудь убедиться что таблицы у тебя имеют нужную кодировку.

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

9

Re: Содержимое таблиц отображается кракозяброй.

Спасибо за ответ.
В файле my.ini строку изменил. При запросе SHOW VARIABLES LIKE 'character%'
Выдаёт

character_set_client      utf8
character_set_connection     cp1251
character_set_database     cp1251
character_set_results     utf8
character_set_server     cp1251
character_set_system     utf8
character_sets_dir     C:\Program Files\MySQL\MySQL Server 5.0\share\char...

Ввожу в браузере в форме слова с русскими буквами сервер, выдает ошибку

Data too long for column 'name' at row 1

с английскими все нормально.
Что делать? Пожалуйста, подскажите.

Я еще по ошибке изменил в my.ini в разделе CLIENT SECTION на default-character-set=cp1251
может из-за этого, - а что там было я не помню?

Lokki пишет:

Также не забудь убедиться что таблицы у тебя имеют нужную кодировку.

В таблице в колонке "Сравнение" стоит      cp1251_general_ci .

10

Re: Содержимое таблиц отображается кракозяброй.

rain
Вот что тебе поможет: http://phpclub.ru/faq/wakka.php?wakka=M … p#p-4270-6

Lokki может, ты на основе этого материала + собственных соображений напишешь статью для начинающих пользователей, которые не могут побороть кодировку?

Отредактировано Experior (2006-06-01 12:20:41)

11

Re: Содержимое таблиц отображается кракозяброй.

Experior
Спасибо за ответ.
Статью прочитал, из прочитанного понял что мне надо конвертировать таблицу.
Выполнил запрос как там написано

SELECT CONVERT(CONVERT(name USING binary) USING cp1251) FROM addlinks

отображается все русскими буквами.

Но как конвертировать таблицы там не написано, там дана ссылка на мануал, но в этом мануле все написано по английский.

Не могли бы Вы подсказать, как можно конвертировать таблицы. Большое спасибо, за ответ.

12

Re: Содержимое таблиц отображается кракозяброй.

Частично проблема решилась, перевел поля в другой тип а потом обратно появились русские слова.
Потом импортировал на хостинг, в PhpMyAdmin русские слова, а на сайте нет. Опять какие-то козебяки. Написал письмо в тех. поддержку, может они что подскажут.

13

Re: Содержимое таблиц отображается кракозяброй.

rain
В той полезной статье, что кинул тебе Experior
обрати внимание на блок:
1. PHP ИСПОЛЬЗУЕТ НЕВЕРНУЮ КОДИРОВКУ В КАЧЕСТВЕ КЛИЕНТСКОЙ
[offtopic]Experior

Lokki может, ты на основе этого материала + собственных соображений напишешь статью для начинающих пользователей, которые не могут побороть кодировку?

Статья очень толковая, написать более полезную на её основе вряд ли удастся, но  написать обзор по решению проблем с кодировками в рамках phpMyAdmin (при установке, создании/импорте баз данных, дампов) где будут сноски на этот материал вполне возможно, если такой обзор действительно нужен пользователям.
[/offtopic]

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

14

Re: Содержимое таблиц отображается кракозяброй.

Пробовал устанавливать «SET NAMES кодировка» на хостинге не изменилось, на локальном изменилось.
С тех. поддержки пришло письмо:

Скорее всего, кодировка Вашей базы не совпадает с кодировкой mysql,
установленной на нашем сервере.

У нас используется кодировка cp1251.

А у меня скорее всего utf8, команда mysql_query("SET NAMES utf8"); не помогает. Хостинг от rbc
Может, кто-нибудь сталкивался с подобной проблемой

Я тут еще вот на какую статью наткнулся:  http://phpclub.ru/talk/showthread.php?s … mp;rand=93
Пришлось перейти на 4 версию MySql/

15

Re: Содержимое таблиц отображается кракозяброй.

rain

А у меня скорее всего utf8, команда mysql_query("SET NAMES utf8"); не помогает. Хостинг от rbc
Может, кто-нибудь сталкивался с подобной проблемой

Вот смотри комментарии к статье, которую Experior тебе показал:

Проблема: имеем таблицу с DEFAULT CHARSET=latin1, данные (если смотреть в кодировке CP1251) выглядят как-то так:
Г"ГRГ?Г Гё Г?-ГїГї ГЎГ_ГчГ_Г Г<Г_Г_ðèÿ 4.0.8.11

Если смотреть в кодировке CP866 как-то так:
?Д?о?м?а???н???? ?б?????г?а?л???е???и?? 4.0.8.11

Требуется перевести данные в читабельный вид.

Судя по всему, проблема заключается в том, что данные, лежащие, как думала БД, в latin1 (на самом деле они лежали в CP1251), были сохранены в UTF-8. Отсюда очевидные выводы – преобразуем дамп из UTF-8 в latin1 и получаем исходные данные в исходной кодировке.
<?php
echo iconv('UTF-8','latin1',$dump);
?>

Получаем «Домашняя бухгалтерия 4.0.8.11» в кодировке CP1251, что нам и требовалось. Естесственно, не стоит забывать о необходимости исправить DEFAULT CHARSET=latin1 на DEFAULT CHARSET=CP1251

16

Re: Содержимое таблиц отображается кракозяброй.

Спасибо, все, разобрался. Ура

17

Re: Содержимое таблиц отображается кракозяброй.

rain

Спасибо, все, разобрался. Ура

поясни для других пользователей, как именно решил проблему. iconv() ?

Отредактировано Rash (2006-06-02 20:50:43)

18

Re: Содержимое таблиц отображается кракозяброй.

Да, перед выводом функция

$text=iconv("UTF-8", "CP1251", "$text");

И, все smile)))))))))))))

19

Re: Содержимое таблиц отображается кракозяброй.

Было такое при переносе базы с локального сервера на вирт. хостинг. Пробовал вышеописанными средствами и проч. ухищрения. Потом сделал максимально тупо: открыл файл *.sql в программе Shtirlitz и перекодировал из UTF-8 в WIN. Залил на сервер. Все работает.

20

Re: Содержимое таблиц отображается кракозяброй.

Louie пишет:

Было такое при переносе базы с локального сервера на вирт. хостинг. Пробовал вышеописанными средствами и проч. ухищрения. Потом сделал максимально тупо: открыл файл *.sql в программе Shtirlitz и перекодировал из UTF-8 в WIN. Залил на сервер. Все работает.

Louie, это действительно выход из ситуации воспользоваться ШТИРЛИЦОМ? или....?
Просто вопрос в следующем. Не бейте меня модератор и админ! Я знаю правила, но просто ситуация безвыходная... sad Ну забаните-так забаните.....как говорится попытка-не пытка


Мои "познания" в программировании ограничиваются только HTML, css. По работе приходится иногда пользоваться phpmyadmin.
Импортирую-экспортирую дампы, создаю пользователей. Не более. Тут недавно принесли дамп. Кодировка другая. CP1251.... У нас на серваке-utf8. Сами можете догадаться, что происходит при импорте дампа. Народ, пыталась разобраться на форуме в постах. Не смотря на то, что Lokki и остальные участники форума давольно подробно все описывают-делаю, но нифига ничего у меня не получается.

Руки кривые, да и делаю бездумно-понятий то таких глубоких нет и  т.п.  когда идет терминология в ваших постах-это для меня вообще НЕЧТО.
Большущая просьба, помогите....если можно по шагам для таких тупых как я. А вообще, было бы действительно ЗАМЕЧАТЕЛЬНО, если бы появилась на форуме поясняющая статья именно для ЧАЙНИКОВ-которые только пользователи...
Выглядит это так:

MySQL - 5.0.22-Debian_0ubuntu6.06, phpMyAdmin - 2.8.1

UTF-8 Unicode (utf8)

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


Заранее спасибо за любую помощь...
Может действительно есть какая прога для перевода дампа?

21

Re: Содержимое таблиц отображается кракозяброй.

Ничего проще придумать не смог, поэтому просто написал примитивный скрипт, выполняющий перекодировку текстового файла дампа из windows-1251 в utf-8. Сразу оговорюсь, что кроме перекодировки выполняется замена только CHARSET=cp1251 на CHARSET=utf8, а этого некоторым дампам будет мало.

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

Что надо сделать.
Создать файл с содержимым в рамке код, положить в одну папку сделанный только что файл и ваш дамп, поменять в скрипте file.sql на имя вашего файла дампа, при желании поменять dump_utf8.sql на имя выходного, перекодированного файла дампа. Запустить скрипт. Если вылезли ошибки записи в файл, установить на папку со скриптом разрешение на запись, и повторить снова. Если созданный файл не импортируется, либо работает не всё, найти в файле все вхождения "cp1251" и поменять их на "utf8".

Все возникающие проблемы описывайте подробно. Будем вместе их решать.

<?php
// Скрипт перекодирования текстового файла из WINDOWS-1251 в UTF-8.

$dump_file = 'file.sql';        // Имя исходного файла, который необходимо перекодировать.
$output_file = 'dump_utf8.sql';    // Имя выходного файла.

$temp_dump = file_get_contents($dump_file);
$temp_dump = iconv('WINDOWS-1251', 'UTF-8', $temp_dump);
$temp_dump = str_ireplace('CHARSET=cp1251', 'CHARSET=utf8', $temp_dump);

$handle = fopen($output_file, 'w');
fwrite($handle, $temp_dump);
fclose($handle);

echo 'Скрипт выполнен.';

?>

ВКонтакте Facebook Twitter

22

Re: Содержимое таблиц отображается кракозяброй.

во-первых, ОГРОМНОЕ спасибо, Hanut, что не удалил пост и не забросал камнями,
а отнесся с пониманием (!!!!) к чайнику и максимально (!!!!) подробно все описал.

Все проделала по инструкции. Дамп перекодировался... но! sad

После иморта вылезает такая ошибка: Fatal error: Allowed memory size of 8388608 bytes exhausted (tried to allocate 139883 bytes) in /usr/share/phpmyadmin/libraries/sqlparser.lib.php on line 306

В браузере, при открытии адреса сайта вылезают все те же ?????

23

Re: Содержимое таблиц отображается кракозяброй.

Если база данных не создана, то при создании указать необходимое сопоставление (Collation), напр. cp1251_general_ci для кодировки cp1251 (он же Windows-1251). Если база уже создана, то текущее сопоставление можно изменить при необходимости на вкладке 'Operations'. Затем на вкладку 'Import', указываешь локальный адрес дампа, а также кодировку дампа, остается импортировать дамп. Все.

А если всего этого нет.?.

Нет поля для указания сопоставления. На вкладке Operations также негде изменить.
Пробовал ПМА 2.8 и 2.9.

Локально дамп создается в ср1251, на серваке - кои8р, а засчет того, что ПМА утф-8 вообще фигня выходит.
В подсказке на серваке сказано:

#Если документы сайта в windows-1251 - после
#подключения к базе использовать директиву типа:
# $rv =$dbh->do("SET CHARACTER SET CP1251_KOI8");

После добавления дампа на сервер, выполняю SQL запрос: 'SET CHARACTER SET CP1251_KOI8', но не помагает.


Подскажите пожалуйста решение проблемы. Может стои с ПМА 2.6 попробовать?

24

Re: Содержимое таблиц отображается кракозяброй.

хм, а если на запрос
SHOW VARIABLES LIKE 'character%'

сервер выдает такой ответ:

character_set_client    [BLOB - 6 Bytes]
character_set_connection    [BLOB - 6 Bytes]
character_set_database    [BLOB - 6 Bytes]
character_set_results    [BLOB - 6 Bytes]
character_set_server    [BLOB - 6 Bytes]
character_set_system    [BLOB - 4 Bytes]
character_sets_dir    [BLOB - 80 Bytes]

то что можно делать с этим?

25

Re: Содержимое таблиц отображается кракозяброй.

Cane
Ваша проблема в MySQL 4.0. Я уже писал в другой теме о возможном решении через сохранение данных в бинарном виде. Но лучше смены хостинга, всё-равно ничего не придумать.

spendolas
Возможно проблема в том, что текстовые файлы скрипта phpMyAdmin были залиты на сервер через FTP, как бинарные.

ВКонтакте Facebook Twitter