Обсуждение:Изменение кодировки MySQL-базы с latin1 на cp1251

Материал из 1GbWiki.

(Различия между версиями)
Перейти к: навигация, поиск
Версия 07:05, 19 августа 2008 (править)
81.1.243.193 (Обсуждение)

← К предыдущему изменению
Версия 07:06, 19 августа 2008 (править) (отменить)
81.1.243.193 (Обсуждение)

К следующему изменению →
Строка 6: Строка 6:
:По ссылке какая-то фигня. Нам не надо ничего перекодировать, нам надо изменить мнение MySQL о том, какая там кодировка. В реальности-то там всё равно cp1251, а не latin1, но MySQL думает иначе, из-за чего не работает сортировка и тому подобные вещи. Собственно, можно то же самое делать и через дамп, но не путём его перекодирования, а путём замены строк latin1 на cp1251 и latin1_swedish_ci (или latin1_bin) на cp1251_general_ci, но и это не совсем просто, поскольку те же названия кодировок могут оказаться не только в названиях таблиц, но и в самих данных. То есть для нормального решения этой проблемы (в стиле готового рецепта, без ручной доработки напильником и ручного ковыряния дампа в текстовом редакторе) нам бы пришлось парсить SQL-дамп полноценным образом, а это уж точно не проще, чем то, что сделал я. И однозначно дольше. [[Участник:Teak|Teak]] 12:12, 18 августа 2008 (MSD) :По ссылке какая-то фигня. Нам не надо ничего перекодировать, нам надо изменить мнение MySQL о том, какая там кодировка. В реальности-то там всё равно cp1251, а не latin1, но MySQL думает иначе, из-за чего не работает сортировка и тому подобные вещи. Собственно, можно то же самое делать и через дамп, но не путём его перекодирования, а путём замены строк latin1 на cp1251 и latin1_swedish_ci (или latin1_bin) на cp1251_general_ci, но и это не совсем просто, поскольку те же названия кодировок могут оказаться не только в названиях таблиц, но и в самих данных. То есть для нормального решения этой проблемы (в стиле готового рецепта, без ручной доработки напильником и ручного ковыряния дампа в текстовом редакторе) нам бы пришлось парсить SQL-дамп полноценным образом, а это уж точно не проще, чем то, что сделал я. И однозначно дольше. [[Участник:Teak|Teak]] 12:12, 18 августа 2008 (MSD)
-<pre> Собственно, можно то же самое делать и через дамп, но не путём его перекодирования, а путём замены строк latin1 на cp1251 и latin1_swedish_ci (или latin1_bin) на cp1251_general_ci, но и это не совсем просто, поскольку те же названия кодировок могут оказаться не только в названиях таблиц, но и в самих данных.</pre>+<pre> Собственно, можно то же самое делать и через дамп,
 +но не путём его перекодирования, а путём замены строк latin1
 +на cp1251 и latin1_swedish_ci (или latin1_bin) на
 +cp1251_general_ci, но и это не совсем просто, поскольку те
 +же названия кодировок могут оказаться не только в названиях
 +таблиц, но и в самих данных.</pre>
:: Все равно мне непонятно, почему здесь не может помочь программа-перекодировщик. По ссылке приведен один из лучших перекодировщиков, который я когда-либо видел. "Сьедает" любые кодировки и преобразует их в читаемый cp1251, причем проглатывает файлы и со смешанными кодировками. :: Все равно мне непонятно, почему здесь не может помочь программа-перекодировщик. По ссылке приведен один из лучших перекодировщиков, который я когда-либо видел. "Сьедает" любые кодировки и преобразует их в читаемый cp1251, причем проглатывает файлы и со смешанными кодировками.

Версия 07:06, 19 августа 2008

К чему такие сложности? Не проще ли бэкап просто перекодировать любым доступным перекодировщиком, которых сейчас можно найти множество (например см. http://www.listsoft.ru/?id=1177), а затем залить базу обратно на сервер. По-моему это проще удобнее.

Хотя скрипт конечно впечатляет :)))

По ссылке какая-то фигня. Нам не надо ничего перекодировать, нам надо изменить мнение MySQL о том, какая там кодировка. В реальности-то там всё равно cp1251, а не latin1, но MySQL думает иначе, из-за чего не работает сортировка и тому подобные вещи. Собственно, можно то же самое делать и через дамп, но не путём его перекодирования, а путём замены строк latin1 на cp1251 и latin1_swedish_ci (или latin1_bin) на cp1251_general_ci, но и это не совсем просто, поскольку те же названия кодировок могут оказаться не только в названиях таблиц, но и в самих данных. То есть для нормального решения этой проблемы (в стиле готового рецепта, без ручной доработки напильником и ручного ковыряния дампа в текстовом редакторе) нам бы пришлось парсить SQL-дамп полноценным образом, а это уж точно не проще, чем то, что сделал я. И однозначно дольше. Teak 12:12, 18 августа 2008 (MSD)
 Собственно, можно то же самое делать и через дамп, 
но не путём его перекодирования, а путём замены строк latin1 
на cp1251 и latin1_swedish_ci (или latin1_bin) на 
cp1251_general_ci, но и это не совсем просто, поскольку те 
же названия кодировок могут оказаться не только в названиях 
таблиц, но и в самих данных.
Все равно мне непонятно, почему здесь не может помочь программа-перекодировщик. По ссылке приведен один из лучших перекодировщиков, который я когда-либо видел. "Сьедает" любые кодировки и преобразует их в читаемый cp1251, причем проглатывает файлы и со смешанными кодировками.
Личные инструменты