当我在此表中插入数据时,我的查询是 INSERT INTO urdu_word(word)VALUES('Abdelali Abou Dher(عبدالعاليابوذر)')在DUPLICATE KEY UPDATE word ='Abdelali Abou Dher(عبدالعاليابوذر)'字值替换为喜欢???
我的表结构是:
CREATE TABLE `urdu_word` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`word` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `word` (`word`),
KEY `idx_aml_word_status` (`word`)
)ENGINE=InnoDB DEFAULT CHARSET=utf8;
我也尝试将表结构转换为utf8_unicode_ci但面临同样的问题
CREATE TABLE `aml_word` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`word` varchar(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `word` (`word`),
KEY `idx_aml_word_status` (`word`)
)ENGINE=InnoDB DEFAULT CHARSET=utf8;
mysql 5.6版
当插入查询在mysql命令行中运行时,它在urdu中插入很好但是当我使用mybatis ORM插入代码然后创建问题。
答案 0 :(得分:0)
在(mt)Media Temple上MySQL的默认字符集是latin1, 使用latin1_swedish _
的默认排序规则
所以你需要改变你的校准
尝试使用此查询
ALTER DATABASE dbname CHARACTER SET utf8 COLLATE utf8_general_ci;
遵循本教程
https://mediatemple.net/community/products/dv/204403914/default-mysql-character-set-and-collation#gs