我有一个名为CHINESE
的表格,其中只有一列NAME
SHOW VARIABLES LIKE 'char%'
的输出为:
+--------------------------+--------------------------------------------------------+ | Variable_name | Value | +--------------------------+--------------------------------------------------------+ | character_set_client | utf8 | | character_set_connection | utf8 | | character_set_database | latin1 | | character_set_filesystem | binary | | character_set_results | utf8 | | character_set_server | latin1 | | character_set_system | utf8 | | character_sets_dir | /usr/local/mysql-5.1.73-osx10.6-x86_64/share/charsets/ | +--------------------------+--------------------------------------------------------+
当我运行此查询:INSERT INTO CHINESE VALUES ('你好')
时,会插入值。
但是,当我尝试执行此查询时:SELECT * FROM CHINESE
,结果是:
+------+ | NAME | +------+ | ?? | +------+
SELECT HEX(NAME) FROM CHINESE
的结果是:
+-----------+ | HEX(NAME) | +-----------+ | 3F3F | +-----------+
我在哪里弄错了?
答案 0 :(得分:0)
如果mysql> = 5.5.3,请使用utf8mb4。
ALTER TABLE $tablename
CONVERT TO CHARACTER SET utf8mb4
COLLATE utf8mb4_general_ci
CREATE TABLE $tablename (
`id` int(11) NOT NULL AUTO_INCREMENT,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
ALTER TABLE $tablename
MODIFY $col1
VARCHAR(191)
CHARACTER SET utf8mb4;
答案 1 :(得分:-1)
请尝试以下操作来更改字符集:SET NAMES 'big5';