Форум русскоязычного сообщества Ubuntu


Увидели сообщение с непонятной ссылкой, спам, непристойность или оскорбление?
Воспользуйтесь ссылкой «Сообщить модератору» рядом с сообщением!

Автор Тема: Помогите перекодировать нормально бд  (Прочитано 1617 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн darmoid

  • Автор темы
  • Новичок
  • *
  • Сообщений: 6
    • Просмотр профиля
    • блог вебмастера
Ситуация такая. Бд была в кодировке вин1251, а сайт в ютф8. Этот секс был на вордпресс старых версий от Макса. Соотвественно в пхпмайадмин если посмотреть на текстовые данные все отображалось в крякозябрах.
Теперь хочется перевести базу в ютф8 нормальный, читаемый вид. Уже второй день парюсь и ничего не выходит.
Вот данные:
enca 1.sql
вывод:
Universal transformation format 8 bits; UTF-8
Doubly-encoded to UTF-8 from CP1251

если же взять кусок текста и вставить его в онлайн декодер, то он его хорошо конвертует.

Пример куска текста: (947,57,'_aioseop_description','Бузина чорна, Лілія біла, Терен звичайний'),

размер бд примерно 20мб

Помогите! Очень прошу!

Оффлайн Mam(O)n

  • Старожил
  • *
  • Сообщений: 5855
    • Просмотр профиля
Re: Помогите перекодировать нормально бд
« Ответ #1 : 09 Марта 2011, 21:44:06 »
Doubly-encoded to UTF-8 from CP1251
Таки напрашивается iconv -f utf8 -t cp1251

Оффлайн darmoid

  • Автор темы
  • Новичок
  • *
  • Сообщений: 6
    • Просмотр профиля
    • блог вебмастера
Re: Помогите перекодировать нормально бд
« Ответ #2 : 09 Марта 2011, 22:21:34 »
так не получается все-равно крякозябры  :-[
может я не правильно задаю запрос или просто не знаю чем потом можно отрыть бд жеди слетает при попытке открытия конвертированной таким образом базы, а опен офис открывает с крякозябрами.

нашел тут решение, но не полное и как по мне немного извращенное

<?
echo iconv("utf-8", "windows-1251", "Пора переходить на cp-1251.");
?>


Когда вставляю всю бд вместо Пора переходить на cp-1251. Браузер до конца не воспроизводит, но кодировка меняется. Бд на 16мб  :)
Как конвертировать нормально с помощью iconv бд на 16мб?
« Последнее редактирование: 09 Марта 2011, 22:32:17 от darmoid »

Оффлайн Mam(O)n

  • Старожил
  • *
  • Сообщений: 5855
    • Просмотр профиля
Re: Помогите перекодировать нормально бд
« Ответ #3 : 09 Марта 2011, 23:03:30 »
А у меня получается:
mamon@mamon-desktop:~/tmp$ iconv -f utf8 -t cp1251 <<< "(947,57,'_aioseop_description','Бузина чорна, Лілія біла, Терен звичайний')"
(947,57,'_aioseop_description','Бузина чорна, Лілія біла, Терен звичайний')

Так делал?
iconv -f utf8 -t cp1251 oldfile.sql > newfile.sql

Оффлайн Gadd

  • Участник
  • *
  • Сообщений: 209
    • Просмотр профиля
Re: Помогите перекодировать нормально бд
« Ответ #4 : 09 Марта 2011, 23:12:24 »
На сколько я понял, надо из cp1251 перевести в utf8. Тогда немного корректируем команду
iconv -f cp1251 -t utf8 file_from.sql -o file_to.sql
Пользователь решил продолжить мысль 09 Марта 2011, 23:16:06:
man iconv
Цитировать
--from-code, -f encoding
              Convert characters from encoding.
 --to-code, -t encoding
              Convert characters to encoding. If not specified the encoding
              corresponding to the current locale is used.
--output, -o file
              Specify output file (instead of stdout).
« Последнее редактирование: 09 Марта 2011, 23:16:06 от Gadd »
Ubuntu 16.04 x86_64
AMD FX X8 8350, Gigabyte 990FXA-UD3 (rev 3.0), GeForce GTX760 2ГБ
Установлены все обновления

Оффлайн Mam(O)n

  • Старожил
  • *
  • Сообщений: 5855
    • Просмотр профиля
Re: Помогите перекодировать нормально бд
« Ответ #5 : 09 Марта 2011, 23:20:45 »
На сколько я понял, надо из cp1251 перевести в utf8.
Если прочитать топик внимательнее, то можно узреть вывод определителся кодировки, который гласит, что "Doubly-encoded to UTF-8 from CP1251". А это означает, что перестарались с перекодированием и нужно произвести обратную перекодировку из utf8 в cp1251 и мы получим результат в кодировке utf8. Выше же я пример работы команды приводил..

Оффлайн Gadd

  • Участник
  • *
  • Сообщений: 209
    • Просмотр профиля
Re: Помогите перекодировать нормально бд
« Ответ #6 : 09 Марта 2011, 23:25:39 »
Внимательно читать - это для лентяев, которые не хотят делать лишних телодвижений. Шутка  :D

Но для топикстартера (и остальным тоже) следовало бы об этом сказать яснее, а не намеками.
Спасибо за уточнение
Ubuntu 16.04 x86_64
AMD FX X8 8350, Gigabyte 990FXA-UD3 (rev 3.0), GeForce GTX760 2ГБ
Установлены все обновления

Оффлайн darmoid

  • Автор темы
  • Новичок
  • *
  • Сообщений: 6
    • Просмотр профиля
    • блог вебмастера
Re: Помогите перекодировать нормально бд
« Ответ #7 : 10 Марта 2011, 00:49:57 »
А у меня получается:
mamon@mamon-desktop:~/tmp$ iconv -f utf8 -t cp1251 <<< "(947,57,'_aioseop_description','Бузина чорна, Лілія біла, Терен звичайний')"
(947,57,'_aioseop_description','Бузина чорна, Лілія біла, Терен звичайний')

Так делал?
iconv -f utf8 -t cp1251 oldfile.sql > newfile.sql
да, так делал
создается новый файл
пробую его открыть разными редакторами, но они открывают новый файл с все теми ж крякозябрами (

 

Страница сгенерирована за 0.097 секунд. Запросов: 23.