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

2014-05-22 17:33:19 +08:00
 P9
本人初学遇到一个问题,请各位帮忙看看。

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

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

This function only works with UTF-8 encoded data.

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

谢谢!

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/113798

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX