Comments 12
> Символьная таблица кириллических букв находится в ней на месте арабских символов
Во-первых, в latin1 нет кириллических букв.
Во-вторых, «арабских символов» в ней тоже нет.
Строка байт – это строка байт. А ошибка в кодировке – это ошибка в кодировке.
Хорошая матчасть по наборам символов тут. Процитирую:
Даже если вы полностью забыли всё то, что я вам только что объяснял, пожалуйста, помните один чрезвычайно важный факт. Не имеет смысла иметь строку, не зная, в какой она кодировке. Вы больше не можете засунуть голову в песок и притвориться, что это «простой» текст в ASCII.
Нет Такой Вещи Как Простой Текст.
Во-первых, в latin1 нет кириллических букв.
Во-вторых, «арабских символов» в ней тоже нет.
Строка байт – это строка байт. А ошибка в кодировке – это ошибка в кодировке.
Хорошая матчасть по наборам символов тут. Процитирую:
Даже если вы полностью забыли всё то, что я вам только что объяснял, пожалуйста, помните один чрезвычайно важный факт. Не имеет смысла иметь строку, не зная, в какой она кодировке. Вы больше не можете засунуть голову в песок и притвориться, что это «простой» текст в ASCII.
Нет Такой Вещи Как Простой Текст.
во-первых — этоту посту место в блоге MySQL, веб-разработки тут нет вообще.
во-вторых, заголовок неадекватный. Лучше было бы «как перекодировать в MySQL ....». Хотя если перенести весь пост в MySQL — тогда заголовок годится, неоднозначность снимается.
а в-третьих, такая проблема легко решается средствами самого MySQL — перекодировать через binary- и об этом только ленивый не писал еще.
во-вторых, заголовок неадекватный. Лучше было бы «как перекодировать в MySQL ....». Хотя если перенести весь пост в MySQL — тогда заголовок годится, неоднозначность снимается.
а в-третьих, такая проблема легко решается средствами самого MySQL — перекодировать через binary- и об этом только ленивый не писал еще.
1. Сделайте дамп существующих данных
2. Перезалейте его (можно через консоль) с указанием параметра --default-character-set=cp1251
3. Profit!
2. Перезалейте его (можно через консоль) с указанием параметра --default-character-set=cp1251
3. Profit!
о latin1. Эта кодировка (также известна как windows-1252)Не вполне корректное утверждение, в целом это разные кодировки.
Сделал по вашей схеме, только через консоль, т.к. файл весит 67Мб
-bash-3.2$ iconv -c -f utf8 -t cp1252 file.sql > file-1252.sql
-bash-3.2$ iconv -c -f cp1251 -t utf8 file-1252.sql > file-utf8.sql
Спасибо.
-bash-3.2$ iconv -c -f utf8 -t cp1252 file.sql > file-1252.sql
-bash-3.2$ iconv -c -f cp1251 -t utf8 file-1252.sql > file-utf8.sql
Спасибо.
Sign up to leave a comment.
Как перекодировать latin1 в кириллицу