Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Исправить кодировку из latin utf8

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
S.E.K.T.O.R.
Отправлено: 08 Июля, 2012 - 10:52:19
Post Id


Новичок


Покинул форум
Сообщений всего: 37
Дата рег-ции: Февр. 2012  


Помог: 0 раз(а)




Доброго времени суток товарищи!
В общем затяганный ужасно вопрос, но не один вариант решения не помогает. Надеюсь на ваш замечательный форум Улыбка
В общем жил был форум на VDS. Конфигурировали его не профи. То есть установили на убунту LAMP, установили двиг форума и общались на форуме Улыбка
Как вы поняли, по стандарту кодировки были latin, latin_swedish и т.д. На морде форума все отлично, но вот в ПМА крякозябры (с кирилицей, что не удивительно). В общем теперь нужно привести базу в читаемый utf8. Но как не пытался, чем не конвертил, все равно в дампе крякозябры.
Очень прошу помощи, подскажите, как это все дело сделать читаемым (в БД около 260 таблиц). Вот пример что получается в дампе:
CODE (SQL):
скопировать код в буфер обмена
  1. ñïàñèáî áîëüøîå çà ïðåêîìï èíñàéä è ñðåïèíñàéä

Заранее огромное спасибо!
 
 Top
Anguis
Отправлено: 08 Июля, 2012 - 20:31:08
Post Id



Частый гость


Покинул форум
Сообщений всего: 253
Дата рег-ции: Июнь 2012  


Помог: 2 раз(а)




непонятно изъясняетесь..
Вы пользовались уитилитой mysqldump ? Она тоже делает дамп с кракозаблами?
 
 Top
S.E.K.T.O.R.
Отправлено: 09 Июля, 2012 - 01:51:14
Post Id


Новичок


Покинул форум
Сообщений всего: 37
Дата рег-ции: Февр. 2012  


Помог: 0 раз(а)




Anguis пишет:
непонятно изъясняетесь..

извините, может криво объяснил. В общих чертах:
Дело в том, что SQL сервер не настраивался под кирилицу после его установки и все данные, в том числе кириличиский текст, писался в базу в кодировке latin1_swedish_ci. На форуме кирилица нормально отображается, но если смотреть в ПМА ячейки с кирилицой, данные там в иерогглифах. Соответственно когда делаю дамп и просматриваю к примеру в блокноте то вижу так же иероглифы вместо кирилицы. То есть понятно, что даже если я сейчас тупо изменю сравнение скажем на UTF8, данные в ячеках от этого не получат читаемый вид.
Поэтому и прошу помощи. Как преобразовать данные в читаемый вид?
ЗЫ. В гугле находил совет, что вроде надо как-то переводить данные в бинарный вид и меняя сравнение переводить уже в нужную кодировку. Но как это автоматически провернуть для кучи таблиц не понял...

Цитата:
Вы пользовались уитилитой mysqldump ?

нет, эту тулзу не пропобовал, syper'ом пробовал.
 
 Top
Anguis
Отправлено: 09 Июля, 2012 - 09:00:00
Post Id



Частый гость


Покинул форум
Сообщений всего: 253
Дата рег-ции: Июнь 2012  


Помог: 2 раз(а)




S.E.K.T.O.R., значит, смотрите.
В ПМА естественно будут кракозяблы, потому что кодировка ПМА utf-8 а данные в latin1_swedish_ci. Т.е. когда вы в блокноте открываете дамп в блокноте, происходит то-же самое что и в ПМА. А именно дамп в кодировке latin1_swedish_ci блокнот отображает в utf-8 (или windows-1251 я не помню). Естественно мы получаем кракозяблы.
У меня есть радикальный способ конвертирования. Я работаю в линуксе, поэтому не знаю как в виндовом блокноте, но в программе в которой я работаю (kate) можно задать кодировку отображения данных. Т.е. мы берем ваш дамп в latin1_swedish_ci, открываем, задаем кодировку отображения - для latin1_swedish_ci вероятно будет ISO8859-1(точно не знаю). И видим русские символы. Копируем это дело в буфер обмена, задаем кодировку нужной нам (к примеру utf-8) и заменям содержимое из буфера обмена. Теперь у нас русские символы видны и в utf-8. Засовываем дамп обратно в базу не забыв указать его кодировку как utf-8

Вот тут есть еще один способ.
Цитата:

Создаешь 2 соединения с базой для простоты.
В первом делаешь SET NAMES latin1_swedish_ci;
Во втором делаешь SET NAMES cp1252;
И начинаешь читая из первого записывать в свою новую таблицу открытую во втором соединении.

Тоже довольно радикально)
 
 Top
kappa
Отправлено: 09 Июля, 2012 - 11:06:11
Post Id



Посетитель


Покинул форум
Сообщений всего: 349
Дата рег-ции: Апр. 2011  


Помог: 3 раз(а)




Если dump базы не большой то может можно попробовать воспользоваться

file_get_contents()
iconv()
 
 Top
Anguis
Отправлено: 09 Июля, 2012 - 11:23:57
Post Id



Частый гость


Покинул форум
Сообщений всего: 253
Дата рег-ции: Июнь 2012  


Помог: 2 раз(а)




kappa, я бы вообще консольную iconv натравил на таблицы или на дамп. Но человек походу с ssh не работает...
 
 Top
S.E.K.T.O.R.
Отправлено: 09 Июля, 2012 - 19:49:18
Post Id


Новичок


Покинул форум
Сообщений всего: 37
Дата рег-ции: Февр. 2012  


Помог: 0 раз(а)




Народ, спасибо за советы, но никак не хочет.
Цитата:
file_get_contents()
iconv()

пробовал, iconv падает доходя до кривого текста....

хе, совсем уж в печали Недовольство, огорчение Честно говоря уж и сам не пойму, как там текст закодирован в ячейках. Вот что имеется по настройке SQL
И дамп одной таблички. Таблица форумов. Если не сложно, может попробуете сменить ибо я уж не знаю что и делать Недовольство, огорчение Но то что на форуме кирилица читаема, дает надежду Улыбка
Скачать файл: forum.sql.gz
Скачан раз: 31
 
 Top
armancho7777777 Супермодератор
Отправлено: 09 Июля, 2012 - 20:21:43
Post Id



Активный участник


Покинул форум
Сообщений всего: 4526
Дата рег-ции: Февр. 2011  
Откуда: Москва


Помог: 221 раз(а)




Попробуйте не экспортировать, а просто отобразить как текст и скопировать.
Я скачал файл, но он уже преобразован в UTF8 без BOM.
 
 Top
S.E.K.T.O.R.
Отправлено: 09 Июля, 2012 - 20:41:41
Post Id


Новичок


Покинул форум
Сообщений всего: 37
Дата рег-ции: Февр. 2012  


Помог: 0 раз(а)




Цитата:
Попробуйте не экспортировать, а просто отобразить как текст и скопировать.

Те же карлючкиНедовольство, огорчение
Цитата:
Я скачал файл, но он уже преобразован в UTF8 без BOM.

Это экспорт таблички из ПМА...
 
 Top
Anguis
Отправлено: 10 Июля, 2012 - 09:42:16
Post Id



Частый гость


Покинул форум
Сообщений всего: 253
Дата рег-ции: Июнь 2012  


Помог: 2 раз(а)




S.E.K.T.O.R., надо зайти на сервер по ssh и сделать дамп утилитой mysqldump, дамп из пма ты не переконвертишь
(Добавление)
А вообще вот этим способом тебе надо
Цитата:

Создаешь 2 соединения с базой для простоты.
В первом делаешь SET NAMES latin1_swedish_ci;
Во втором делаешь SET NAMES cp1252;
И начинаешь читая из первого записывать в свою новую таблицу открытую во втором соединении.
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« SQL и Архитектура БД »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB