在包含挪威字符的数据表(.net)中显示来自MySQL的数据时遇到问题。我正在运行CodeIgniter,并在database.php中配置了以下变量:
$db['default']['char_set'] = 'utf8';
$db['default']['dbcollat'] = 'utf8_general_ci';在将表单中的数据插入到数据库之前,我也会对这些数据使用utf8_encode,但是当我提取数据时,就会显示出来。该数据库还配置了utf8_general_ci。简而言之,我的问题是:我应该如何配置CodeIgniter和MySQL,以便能够顺利地从数据库中插入和提取数据?我应该在提交数据之前使用utf8_encode吗?或者这只是双重编码和问题的一部分?
又来了!我不认为数据表是问题的一部分,因为当数据发送到数据表时,该字段已经是空的。
PS2!我不知道为什么,但我只遇到挪威大写字母的问题。?无法显示,但ø工作正常。ä不能显示,但§工作正常。
发布于 2013-12-10 15:44:39
上周我遇到了一个类似的问题&我发现出问题的不是DB,而是Codeigniter处理数据的方式。
因此,每次在将数据保存到数据库之前,我都会通过
htmlentities($str, ENT_QUOTES | ENT_HTML401, "UTF-8");在以html格式显示数据之前,我再次将其传递给
html_entity_decode($str, ENT_COMPAT | ENT_HTML401, 'UTF-8') 仅供记录,我在我的数据库配置文件中有这个
$db['default']['char_set'] = 'utf8';
$db['default']['dbcollat'] = 'utf8_general_ci';发布于 2013-12-10 17:13:05
尝试使用以下命令:
mysql_select_db('db_name');
mysql_query("SET NAMES 'utf8'");将mysql_query("SET NAMES 'utf8'");置于select database行之后
https://stackoverflow.com/questions/20466934
复制相似问题