首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Datatables.net、PHP和MySQL的字符集问题

问Datatables.net、PHP和MySQL的字符集问题
EN

Stack Overflow用户
提问于 2013-12-09 17:13:13
回答 2查看 424关注 0票数 0

在包含挪威字符的数据表(.net)中显示来自MySQL的数据时遇到问题。我正在运行CodeIgniter,并在database.php中配置了以下变量:

代码语言:javascript
复制
$db['default']['char_set'] = 'utf8';
$db['default']['dbcollat'] = 'utf8_general_ci';

在将表单中的数据插入到数据库之前,我也会对这些数据使用utf8_encode,但是当我提取数据时,就会显示出来。该数据库还配置了utf8_general_ci。简而言之,我的问题是:我应该如何配置CodeIgniter和MySQL,以便能够顺利地从数据库中插入和提取数据?我应该在提交数据之前使用utf8_encode吗?或者这只是双重编码和问题的一部分?

又来了!我不认为数据表是问题的一部分,因为当数据发送到数据表时,该字段已经是空的。

PS2!我不知道为什么,但我只遇到挪威大写字母的问题。?无法显示,但ø工作正常。ä不能显示,但§工作正常。

EN

回答 2

Stack Overflow用户

发布于 2013-12-10 15:44:39

上周我遇到了一个类似的问题&我发现出问题的不是DB,而是Codeigniter处理数据的方式。

因此,每次在将数据保存到数据库之前,我都会通过

代码语言:javascript
复制
htmlentities($str, ENT_QUOTES | ENT_HTML401, "UTF-8");

在以html格式显示数据之前,我再次将其传递给

代码语言:javascript
复制
html_entity_decode($str, ENT_COMPAT | ENT_HTML401, 'UTF-8') 

仅供记录,我在我的数据库配置文件中有这个

代码语言:javascript
复制
$db['default']['char_set'] = 'utf8';
$db['default']['dbcollat'] = 'utf8_general_ci';
票数 0
EN

Stack Overflow用户

发布于 2013-12-10 17:13:05

尝试使用以下命令:

代码语言:javascript
复制
mysql_select_db('db_name');
mysql_query("SET NAMES 'utf8'");

将mysql_query("SET NAMES 'utf8'");置于select database行之后

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20466934

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档