Jump to content






Photo - - - - -

Конвертирование базы MySQL из windows-1521 в utf-8



Понадобилось как-то отладить и дополнить PHP код одного сайта, для чего он был скачан локально. Сайт был в кодировке windows-1251, а данные в базе были представлены вперемешку: часть как текст в кодировке сайта и часть как HTML entities, причём закодированные с помощью htmlentities() без указания кодировки, фактически для iso-8859. Привести всё это нужно было в utf-8 (надо и всё…). Собственно данная запись не более чем заметка на память.

Цепочка конвертации дампа: (1) преобразовать кодировку открытого текста в utf-8, (2) замаскировать открытый текст, (3) раскодировать HTML entities, (4) преобразовать кодировку раскодированного текста из iso-8859 в winows-1251, (5) преобразовать кодировку windows-1251 в utf-8 (т.к. кодировалось не напрямую, то нужно делать в 2 шага), (6) раскодировать замаскированный текст.

  • iconv -f windows-1251 -t utf-8 < dump_1251.sql > dump_utf8.sql
  • ./uni2ascii -aQ ./dump_utf8.sql > ./dump_hex.sql
  • ./ascii2uni -aY ./dump_hex.sql > ./dump_hex_iso.sql
  • iconv -f utf-8 -t iso-8859-1 < ./dump_hex_iso.sql > ./dump_hex_1251.sql
  • iconv -f windows-1251 -t utf-8 < ./dump_hex_1251.sql > ./dump_hex_utf8.sql
  • ./ascii2uni -aX ./dump_hex_utf8.sql > ./dump_utf8-1.sql




А разве нет какой-то команды у SQL-я, позволяющей конвертировать? О_о
Помню же, что-то было.
  • Report
Есть смена кодировки таблиц, но она не затрагивает содержимого. К тому же в описанном случае сложность была с двойной кодировкой (как это обычно и случается), она в автоматическом режиме не перекодируется, понятное дело.
  • Report

Trackbacks for this entry [ Trackback URL ]

strategy games from strategy games

Tracked on 07.06.11 - 06:49

Latest Visitors