преобразовать текстовое поле из latin1_swedish в utf8? - PullRequest
2 голосов
/ 29 декабря 2010

Привет, ребята, есть ли безопасный способ преобразовать таблицу из latin1_swedish в полностью utf8?

Кто-то может объяснить мне, как это сделать?

(возможно, используя phpmyadmin dunno)

Ответы [ 2 ]

0 голосов
/ 30 декабря 2010

Я полагаю, latin1_swedish_ci - сопоставление по умолчанию для вашего сервера базы данных.В этом случае я использую следующие параметры сортировки:

  • База данных: значения по умолчанию (latin1 & latin1_swedish_ci)
  • Таблица: значения по умолчанию (latin1 & latin1_swedish_ci)
  • Столбец: utf8 &utf8_unicode_ci всякий раз, когда это необходимо, по умолчанию (latin1 & latin1_swedish_ci) в противном случае.

Может быть несколько решений этой проблемы, но следующее решение работало для меня и в некоторых наихудших сценариях.

Шаги:

  1. Скопируйте структуру в новую таблицу.
  2. Измените набор символов и сопоставление полей таблицы на utf8 & utf8_unicode_ci соответственно какНужен.
  3. Заполнить новую таблицу данными в старой таблице, используя CONVERT .

    - Копировать структуру таблицы

    CREATE TABLE `table_name` LIKE `old_table_name`;

    - Изменить параметры сортировки, как вам нравится

    ALTER TABLE` table_name`

    CHANGE `column_name1`` column_name1` VARCHAR (100) CHARACTER SETutf8 COLLATE utf8_unicode_ci NULL,

    CHANGE `column_name2`` column_name2` VARCHAR (100) CHARACTER SET utf8 COLLATE utf8_unicode_ci NULL;

    - импортировать данные

    INSERT INTO `table_name` (`id`, `column_name1`,` column_name2`, `column_name3`)

    SELECT` id`,

    CONVERT (CONVERT (_latin1 `column_name1` ИСПОЛЬЗОВАНИЕ двоичного файла) ИСПОЛЬЗОВАНИЕ utf8) collate utf8_unicode_ci,

    CONVERT (CONVERT (_latin1 `column_name2` ИСПОЛЬЗУЕТ двоичный файл) ИСПОЛЬЗУЕТ utf8) сопоставлять utf8_unicode_ci,

    ` column_name3`

    ОТ `old_table_name`

0 голосов
/ 29 декабря 2010
  • Grab Sqlyog Community Edition .
  • Сделайте резервную копию вашей базы данных.
  • Нажмите F6 на таблицах, которые вам нужныedit.
  • При необходимости снимите флажок «Скрыть параметры языка» в правом нижнем углу.
  • При необходимости измените charset и collation.

Я не уверен в каких-либо конкретных ловушках при переходе на / из utf8, но резервная копия должна хорошо вам служить, если что-то пойдет не так.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...