Как я изменяю таблицу MySQL на UTF-8?

Я знаю, что существует много настроек для языка для таблицы и базы данных.

Я уже создал базу данных. Я верю, когда я создал его, это было ЗНАЧЕНИЕ ПО УМОЛЧАНИЮ/ЛАТЫНЬ. Я хочу изменить все-I среднее... и таблица и база данных к UTF-8.

Как я могу сделать это?спасибо.

25
задан TIMEX 25 May 2010 в 09:10
поделиться

3 ответа

В ответе aioobe говорится, как изменить набор символов базы данных, таблицы или столбца. Следует помнить, что

  • установка набора символов для таблицы просто задает набор символов по умолчанию для новых столбцов в этой таблице. Она не изменяет набор символов для ранее существовавших столбцов; вы должны сделать это отдельно, ИЛИ если вы хотите изменить каждый столбец строкового типа в таблице на тот же набор символов, есть команда, которую можно использовать для этого: "alter table ... convert to character set" ( http://dev.mysql.com/doc/refman/5.1/en/alter-table.html )

  • Если у вас уже есть данные, которые хранятся в столбце в неправильной кодировке, то использование команды "alter table ... modify" для изменения столбца не решит проблему. Например, если вы хранили данные в формате UTF-8 в столбце Latin1 и изменили набор символов непосредственно с Latin1 на UTF-8, они все равно будут неправильно закодированы. Это можно обойти, конвертируя из Latin-1 в UTF-8 через двоичный код.

4
ответ дан 28 November 2019 в 18:29
поделиться

Взгляните на Использование команды alter для изменения набора символов .

Еще одна полезная ссылка: http://dev.mysql.com/doc/refman/5.0/en/charset-table.html

Общая форма -

ALTER DATABASE db_name
    [[DEFAULT] CHARACTER SET charset_name]
    [[DEFAULT] COLLATE collation_name]

, а для конкретного столбца в таблица

ALTER TABLE column COLLATE utf8_general_ci

5
ответ дан 28 November 2019 в 18:29
поделиться

Добавьте в my.cnf это:

[mysqld]
character-set-server=utf8
default-collation=utf8_unicode_ci

и перезапустите mysqld deamon.

ДОБАВЛЕНО:

ALTER DATABASE your_base_name CHARACTER SET utf8 COLLATE utf8_unicode_ci;

и my.cnf

SET collation_connection     = utf8_unicode_ci;
SET character_set_results    = utf8;
SET character_set_connection = utf8;
SET character_set_client     = utf8;
-2
ответ дан 28 November 2019 в 18:29
поделиться
Другие вопросы по тегам:

Похожие вопросы: