Понадобилось как-то отладить и дополнить 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) раскодировать замаскированный текст.
Цепочка конвертации дампа: (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
- Качаем http://billposer.org.../uni2ascii.html
- Маскируем в hex
./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









Помню же, что-то было.