V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
P9
V2EX  ›  PHP

Php UTF8 与 GBK 是否会导致无法读取数据

  •  
  •   P9 · 2014-05-22 17:33:19 +08:00 · 2662 次点击
    这是一个创建于 3626 天前的主题,其中的信息可能已经有所发展或是发生改变。
    本人初学遇到一个问题,请各位帮忙看看。

    一个discuz插件,读取数据库A表数据,然后通过post发送到远程服务器django。
    本地测试 一切正常,能取到中文值
    但在正式环境,相同字段如果是英文则读取正常,如果是中文,则显示为none。

    我猜想可能是编码原因,我的代码文件是utf8, 正式环境则是gbk。不过我后来转换了整个插件的编码gbk,依然无效。
    又尝试在代码内做编码转换:iconv("GBK", "UTF-8", $message),还是无果。
    另外,如果仅仅是编码问题,哪数据也不能是None啊,好歹可以传个乱码给远程服务器的,所以此处也怀疑是post函数问题。
    请问各位是否有遇到类似问题,又该如何解决。
    谢谢!
    附上源码:
    https://gist.github.com/Mark-Shine/f1d2ee907098be86e112
    4 条回复    2014-05-23 20:42:58 +08:00
    sun019
        1
    sun019  
       2014-05-22 19:31:18 +08:00 via Android
    建议用curl试试
    P9
        2
    P9  
    OP
       2014-05-22 19:44:29 +08:00
    @sun019 好的
    pubby
        3
    pubby  
       2014-05-22 19:55:00 +08:00   ❤️ 1
    json_encode()

    This function only works with UTF-8 encoded data.

    // 这里所有的GBK字段都转成UTF-8了吗?
    $posts_queue_cache[] = json_encode($data);
    P9
        4
    P9  
    OP
       2014-05-23 20:42:58 +08:00
    @pubby 原来是这个,我本地用的是Utf8的所以不会有报错。 恩,好的,我去试试,谢谢。 查到文档里有说明:‘All string data must be UTF-8 encoded.’

    谢谢!
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   5652 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 06:07 · PVG 14:07 · LAX 23:07 · JFK 02:07
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.