首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >mysql_query返回外部字符的错误字符编码。

问mysql_query返回外部字符的错误字符编码。
EN

Stack Overflow用户
提问于 2014-03-07 07:11:00
回答 1查看 1.1K关注 0票数 0

我的数据库表是UTF-8,但是当通过PHP查询它时,字符就不同了。

当查看数据库中的数据时,如下所示:

代码语言:javascript
复制
汕头å›åŽå¤§é…’店

但在PHP中,它的结果是

代码语言:javascript
复制
汕头åÂÂââ

我注意到,当我在插入mysql之前用base64_encode对数据进行编码,然后当它出现时对其进行解码,然后它在PHP中正确显示,并显示它在数据库中所做的事情:

代码语言:javascript
复制
 汕头å›åŽå¤§é…’店

但是有一些数据我不能先对它进行编码,所以我不能总是这样做,所以我想知道为什么mysql_query会让它以不同的方式出现。我试过很多东西

  1. 在查询之前执行以下操作: mysql_query ("set字符_set_utf8=‘utf8 8’“);

和

代码语言:javascript
复制
mysql_query("SET NAMES UTF8"); 
  1. 在查询之前执行此操作: mb_internal_encoding('UTF-8');mb_http_output('UTF-8');mb_http_input('UTF-8');
  2. 这是我的html页面头。 元http-equiv=内容-类型为“content=”文本/html;charset=UTF-8“/”
  3. 在有争议的领域使用utf8_decode,但似乎会使情况更糟

但是它与输出没有什么不同,我可以在同一个页面中看到正确的( base64_decode )和不正确的字符。

谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-03-12 11:21:19

好的,我相信Cake1.2正在尝试对数据进行某种类型的转换,或者告诉mysql到某个地方。

在Cake中从database.php中删除编码=>‘UTF8 8’之后,它工作得很好,当MYSQL表是UTF8时,不需要在UTF8代码或MYSQL中的任何地方设置UTF8!

另外一个问题是,我认为旧数据被错误地存储在数据库中,也许表以前不是UTF8,所以当PHP从CSV文件中读取数据时,它将其存储为乱码(不正确)数据。

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

https://stackoverflow.com/questions/22243807

复制
相关文章

相似问题

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