我需要在我的Mysql数据库中存储以下值:Badaẖšan
在这种特殊情况下,DB正在保存Badah?šan。
我正在使用Charset:UTF8和Collation: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
EDIT2:
问题解决了。
虽然该表具有正确的Charset,但列设置为latin1
这就是结果被打破的原因
对于给您带来的不便,我感到非常抱歉
该线程可以关闭。