V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
P9
V2EX  ›  PHP

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

  •  
  •   P9 · May 22, 2014 · 3121 views
    This topic created in 4368 days ago, the information mentioned may be changed or developed.
    本人初学遇到一个问题,请各位帮忙看看。

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

    我猜想可能是编码原因,我的代码文件是utf8, 正式环境则是gbk。不过我后来转换了整个插件的编码gbk,依然无效。
    又尝试在代码内做编码转换:iconv("GBK", "UTF-8", $message),还是无果。
    另外,如果仅仅是编码问题,哪数据也不能是None啊,好歹可以传个乱码给远程服务器的,所以此处也怀疑是post函数问题。
    请问各位是否有遇到类似问题,又该如何解决。
    谢谢!
    附上源码:
    https://gist.github.com/Mark-Shine/f1d2ee907098be86e112
    4 replies    2014-05-23 20:42:58 +08:00
    sun019
        1
    sun019  
       May 22, 2014 via Android
    建议用curl试试
    P9
        2
    P9  
    OP
       May 22, 2014
    @sun019 好的
    pubby
        3
    pubby  
       May 22, 2014   ❤️ 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
       May 23, 2014
    @pubby 原来是这个,我本地用的是Utf8的所以不会有报错。 恩,好的,我去试试,谢谢。 查到文档里有说明:‘All string data must be UTF-8 encoded.’

    谢谢!
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   3422 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 37ms · UTC 12:14 · PVG 20:14 · LAX 05:14 · JFK 08:14
    ♥ Do have faith in what you're doing.