2013-10-15 2 views
1

Мне сложно создавать таблицу в MySQL с символами UTF. Я полностью потерял, как решить эту проблему.MySQL: имя таблицы с символами UTF

Там только два специальных символов в данном имени таблицы:

Код:

CREATE TABLE `_❎` (id INT(11) UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT); 

Сообщение:

Invalid utf8 character string: '_❎' 

Это работает, однако:

SELECT _utf8'_❎' 
+0

Какова стандартная кодировка вашей базы данных? Я уверен, что 'utf8_general_ci' не будет охватывать этот уровень utf8 – Machavity

+0

Я вижу ... Я пробовал: ' CREATE DATABASE \ 'test_utf8 \' DEFAULT CHARACTER SET \ 'utf8 \'; ' ' USE \ 'test_utf8 \ ';' 'CREATE TABLE \' _❎ \ '(id INT (11) UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT);' – redolent

ответ

3

Если вы используете MySQL 5.5.3 или более поздней версии, я бы установить ваш набор символов utf8mb4

4

Посмотрите на следующей странице: http://dev.mysql.com/doc/refman/5.1/en/identifiers.html

Проблематика полукокс 1F4D2, как документация гласит:

Разрешенные символы в кавычки идентификаторы включают в себя полный Unicode Basic Multilingual Plane (BMP), за исключением U + 0000:

ASCII: U + 0001 .. U + 007F

Extended: U + 0080. U + FFFF

ASCII NUL (U + 0000) и дополнительные символы (U + 10000 и выше) не разрешены в котируемых или некотируемых идентификаторах.

+0

Вот почему utf8mb4 - идеальный ответ здесь. Он поддерживает дополнительные символы. – Machavity

+1

Вы не можете использовать его для имени таблицы, так как mysql хранит идентификаторы с помощью utf-8 и не поддерживает дополнительные символы для идентификаторов. – yakiro

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