2010-07-25 2 views
28

Как сохранить Unicode в бесплатной версии MySQL?Как сохранить unicode в MySQL?

Как представляется, не существует nvarchar типа SQL Server. Unicode не поддерживается в MySQL? Я пробовал использовать text, но это тоже не работает.

ответ

21

Вы должны выбрать utf8_* набор символов для таблицы. Текстовые и памятные поля автоматически сохраняются в UTF-8. Поддержка UTF-16 приходит в MYSQL 6.

+5

Update: UTF-16 и Emoji (utf8mb4) поддержка вводится начиная с версии 5.5: http://dev.mysql.com/doc/refman/5.5/en/charset- unicode.html – Raptor

+0

Стоит отметить, что в зависимости от того, как вы извлекаете данные из базы данных, также может потребоваться явно указать, что соединение использует UTF-8. – hugovdberg

2

Вы пробовали установить имена после подключения? Каков был результат tryng для хранения символов Unicode? Подключитесь к серверу mysql и введите следующее:

SET NAMES UTF8; 

Это должно включить «поддержку» для utf8. Затем попробуйте сохранить данные utf.

14

набор символов для данного столбца строки (CHAR, VARCHAR или *TEXT) определяется его character set and/or collation. Это довольно интенсивная тема, поэтому лучше всего ознакомиться с документацией, которую я связал. Например:

CREATE TABLE t1 
(
    col1 CHAR(10) CHARACTER SET utf8 COLLATE utf8_unicode_ci 
) 

создаст таблицу t1 с col1, который хранит его содержимое в UTF-8 кодировке.

+0

Хорошее объяснение и пример. Спасибо. @ Stefan Gehrig –

1

Я следую своему стилю кодирования, поэтому, пожалуйста, учтите это, следуя моему примеру.

Сначала я создал базу данных MySql.

после создания базы данных, в командной строке MySQL, дать команду:

SET NAMES = UTF8; 

таблицы и столбцы для хранения Юникода должны быть установлены с помощью параметров сортировки собственности как utf8-utf_general_ci. Каждый столбец, предназначенный для хранения юникода, должен быть выбран и установить свойство сопоставления utf8-utf_general_ci.

Теперь в C#.

моя строка соединения устанавливаются как обычно, но с добавлением одного атрибута, как это:

constring = @"SERVER=localhost;" + @"PORT=3306;" + @"DATABASE=gayakidb;" + @"UID=root;" + @"PASSWORD=mysql;" + @"charset=utf8;"; 

Далее установлен Юникодом шрифт в «настройке языка дисплея» ваша система ОС. Или вы можете скопировать и вставить файл шрифта (файл истинного типа) в папку Fonts операционной системы.

Затем я установил свойство шрифта объекта текстового поля или любого другого объекта инструмента на странице свойств.

Более того, если вам нужно набрать шрифт юникода, используя клавиатуру, вам нужно установить язык юникода для раскладки клавиатуры. Это можно сделать, используя опцию для региональных языковых настроек вашей операционной системы.

Выполнено. с этими настройками, i кодированный модуль для сохранения данных и во время работы ocde, он успешно выполнил эту работу.

2

Используйте этот запрос

alter table `DBNAME`.`TblName` Engine=InnoDB checksum=1 comment='' delay_key_write=1 row_format=dynamic charset=utf8 collate=utf8_unicode_ci 
+0

«Использовать этот запрос» без объяснений - это плохой ответ. – Emiswelt

Смежные вопросы