Тема: Почему когда я указываю ....
в php My admin значения на русском языке - то вместо русских букв у меня появляться знаки вопроса(???) ?
( мне надо восстановить темы форума - которые у меня на русском языке , )
Вы не вошли. Пожалуйста, войдите или зарегистрируйтесь.
Форум PHP-MyAdmin.RU → Работа с phpMyAdmin → Почему когда я указываю ....
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
в php My admin значения на русском языке - то вместо русских букв у меня появляться знаки вопроса(???) ?
( мне надо восстановить темы форума - которые у меня на русском языке , )
arbr
То есть в phpMyAdmin вы меняете данные в таблицах, которые относятся к форуму и при вставке кириллицы на форуме выводятся вопросики?
А что phpMyAdmin выводит вместо кириллицы до редакции?
Сначала php my admin выводил тоже знаки вопроса, но когда я в php my admin изменил кодировку на cp1251_general_ci, то он стал выводить русские буквы, но на форуме все равно остаются знаки вопроса вместо русских букв
arbr
Вероятно у вас перепутаны кодировки.
В phpMyAdmin выполните следующий SQL запрос и покажите его вывод.
SHOW GLOBAL VARIABLES LIKE 'char%';
Выберите любую таблицу, в которой содержится кириллица, перейдите на страницу экспорта, сделайте текстовый дамп (не отмечайте "Сохранить как файл"). Скопируйте структуру таблицы и то как выглядит кириллица.
1 На ваш запрос выдает
SQL-запрос:
SHOW GLOBAL VARIABLES LIKE 'char%';
character_set_connection latin1
character_sets_dir /usr/share/mysql/charsets/
2 Структура таблицы phpbb_users
-- phpMyAdmin SQL Dump
-- version 2.11.9.1
-- Версия сервера: 4.1.22
-- Версия PHP: 5.2.6
CREATE TABLE IF NOT EXISTS `phpbb_users` (
...
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
'??????', '????? ??????'
arbr
Ошибки:
1) character_set_connection latin1 - Это означает, что кодировка соединения с MySQL у вас выставлена в latin1, а сайт работает с cp1251 (windows-1251).
2) В структуре таблицы присутствует DEFAULT CHARSET=latin1, а кодировка таблиц должна быть cp1251.
3) ??????? - Это крякозябы. Так выглядит кириллица, когда она сохраняется в таблицы с кодировкой соединения latin1, вместо cp1251.
Если необходимо сделать данные дампа работоспособными, то придется помучиться.
Что касается настройки корректной кодировки соединения с MySQL, то при доступе к конфигурационному файлу (my.cnf), в раздел [mysqld] необходимо добавить строку:
init-connect="SET NAMES cp1251"
Но данные форума это не вернет. Их можно только перекодировать.
Вы написали
Но данные форума это не вернет. Их можно только перекодировать.
- Можно об этом по подробнее.
arbr
Отправил скрипт перекодировки, который необходимо использовать.
1) Данные в дампе должны быть в utf-8. Посмотреть это можно в любом текстовом редакторе, например, Notepad++. Как я понимаю у вас так и есть.
2) Распаковываем скрипт и кладём дамп в каталог upload.
3) Запускаем скрипт iconv.php, отмечаем "From Upload Directory" и выбираем файл. В разделе "Output file" пишем имя конечного, перекодированного файла (будет сохранен в корне скрипта). Можно отметить галочку "Overwrite".
4) В блоке "Convert Encoding" выбираем: From: utf-8 -> To: iso-8859-1.
5) Пробуем, жмем "Convert". Если вылезает ошибка "Error: Detected an illegal character", отмечаем галочку "Illegal Characters" и пробуем еще раз, если ошибка повторяется, то выставляем радиокнопку в "IGNORE".
6) Отмечаем галочку "Replace Strings" и в появившемся разделе нажимаем кнопку "Character Set", выбираем там пару на замену latin1 -> cp1251. Попробуйте также добавить пару на Collation: latin1_general_ci -> cp1251_general_ci.
7) Жмем "Convert" и получаем готовый дамп. Проверяем отображение кириллицы и если все нормально, то импортируем дамп с помощью phpMyAdmin. Перед импортом необходимо добавить в конфигурационный файл MySQL, строку устанавливающую кодировку соединения.
Скрипт все время выдает ошибку "Error: Detected an illegal character" , - я перепробовал вроде все варианты , но не получилось.
Кстати - я его загрузил на свой сервер - iconv.php - может у вас получиться перекодировать файл localhost.sql
arbr
На вашем хостинге не установлено расширение iconv для PHP. Скрипт вы использовать не сможете. Пришлите дамп на мою почту (заархивируйте в zip или 7z .sql файл) - сделаю.
Обязательно удалите сам скрипт iconv.php с хоста.
А что за расширение - эти права доступа на файл что ли?
А что за расширение - эти права доступа на файл что ли?
iconv - это компонент PHP. С его помощью можно работать с различными кодировками.
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Форум PHP-MyAdmin.RU → Работа с phpMyAdmin → Почему когда я указываю ....
Форум работает на PunBB, при поддержке Informer Technologies, Inc
Currently installed 7 official extensions. Copyright © 2003–2009 PunBB.