V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
red
V2EX  ›  问与答

PHP中UTF-8编码保存到数据库的问题

  •  
  •   red · 2013-03-05 20:15:17 +08:00 · 3339 次点击
    这是一个创建于 4287 天前的主题,其中的信息可能已经有所发展或是发生改变。
    我用 http://simplepie.org 的库抓取RSS的时候遇到一个这样一个问题:

    可以抓到文章的正文数据,不过保存到数据库的时候所有的正文内容都变成了如下



    网上找到的资料大多都是说UTF-8编码的问题,不过我遇到过UTF-8编码的问题,显示的是???这样的,而不是像我今天遇到的这样。尽管直接输出这段来还是能够看的(浏览器会将它们解析成文字),不过在输出为RSS的时候又会遇到问题。

    搜索了很久,给的方法试过了都没有用,所以来求帮助了~

    谢谢~
    9 条回复    1970-01-01 08:00:00 +08:00
    123123
        1
    123123  
       2013-03-05 20:31:12 +08:00
    检查数据库编码以及PHP的数据库连接编码
    jacy
        2
    jacy  
       2013-03-05 20:33:49 +08:00
    你看看抓取网页的源代码,估计内容就是这样。如果是这样,写数据库前用 mb_convert_encoding转换一下。
    webgeekman
        3
    webgeekman  
       2013-03-05 21:50:39 +08:00
    自以为处理过各种乱码,但面对此问题依然只有帮忙关注的份了。
    red
        4
    red  
    OP
       2013-03-05 22:56:31 +08:00
    @jacy $content = mb_convert_encoding($content, "UTF-8");

    这样试过了,没有起到什么用
    jacy
        5
    jacy  
       2013-03-05 23:14:25 +08:00   ❤️ 1
    @red 你的第三个参数怎么不填啊?填HTML-ENTITIES
    Mac
        6
    Mac  
       2013-03-05 23:19:09 +08:00
    数据库字段也有编码的
    cutehalo
        7
    cutehalo  
       2013-03-05 23:27:42 +08:00
    这个是html实体字符
    BOYPT
        8
    BOYPT  
       2013-03-06 09:06:57 +08:00
    你的库是utf8了没啊,用数据库客户端连看是不是乱码啊,php里面的变量能被utf8显示嘛,你的输出网页是utf8嘛,文件编码和网页编码标记一致吗
    red
        9
    red  
    OP
       2013-03-06 09:57:47 +08:00
    @jacy $content = mb_convert_encoding($content, "UTF-8","HTML-ENTITIES");
    这样做之后问题解决了,谢谢各位
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2700 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 05:32 · PVG 13:32 · LAX 21:32 · JFK 00:32
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.