0

我需要在我的 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。
这就是结果被破坏的原因。
对于给您带来的不便,我深表歉意。
该线程可以关闭。

4

0 回答 0