我需要在我的 Mysql 数据库中存储值,例如:Badaẖšan。
在这种特殊情况下,数据库正在保存 Badah?šan。
我正在使用字符集:UTF8 和排序规则:utf8_unicode_ci。
我应该使用什么字符集/排序规则来存储正确的值?
编辑:
我正在使用 Codeigniter。
配置:
$db['default']['char_set'] = 'utf8';
$db['default']['dbcollat'] = 'utf8_general_ci';
代码。
$this->db->query("INSERT INTO region (country_name) VALUES ('Badaẖšan')");
返回:
Badah?šan
使用 MySQL GUI 工具 SQLyog 并运行查询:
INSERT INTO `region` (country_name) VALUES ('Badaẖšan')
返回警告:
警告代码:1366
错误的字符串值:第 1 行的列 'country_name' 的 '\xCC\xB1\xC5\xA1an'
再次插入的值是:
Badah?šan
编辑2:
问题解决了。
尽管该表具有正确的字符集,但列设置为 latin1。
这就是结果被破坏的原因。
对于给您带来的不便,我深表歉意。
该线程可以关闭。