[乐意黎原创]PHP里由于数组编码导致json_encode输出为空白问题的解决方法

乐意黎在把数组json_encode转json的时候,输出一片空白,难道是数据量太大了?导致输出空白了? 


研究了, 好久, 没发现问题. 开始怀疑是不是环境有问题, 但是经过验证后, 发现环境没任何问题.


后来检查下PHP程序似乎没有出错,就是json_encode的时候出现了问题,那到底是什么问题呢?


哪么, 只要是出在程序和编码方面的问题了.

情况如下: 

  首先, 页面编码 gbk, 获取的字符串编码也是 gbk.

  其次, 程序如下.

//输出 正确
var_dump($ynqq_result);

//为空, 无任何输出
exit(json_encode($ynqq_result));

输出如图: 


最后. 

无意中, 想起, 或许是编码有问题.


于是, 开始转换编码.

1. 把页面编码转换成 utf-8, 数组字符串还是gbk,  验证, var_dump 乱码, json_encode 还是无输出.


2. 把页面编码转换成 utf-8, 数组字符串还是utf-8 , 验证, var_dump 正确, json_encode终于有输出了.

//转换如下

//www.aerchi.com

$item_title = trim(iconv('UTF-8//IGNORE','utf-8', $item_title));



.

原来是这样, 编码问题导致的.

设置页面编码

header("Content-type: text/html; charset=utf-8");

转换字符串编码

$item_title = trim(iconv('UTF-8//IGNORE','utf-8', $item_title));


相关资料.

json_encode这个函数

(PHP 5 >= 5.2.0, PECL json >= 1.2.0, PHP 7)
json_encode — 对变量进行 JSON 编码

说明
-----------------------------------------------------------
string json_encode ( mixed $value [, int $options = 0 [, int $depth = 512 ]] )

参数
-----------------------------------------------------------
value
待编码的 value ,除了resource 类型之外,可以为任何数据类型。
所有字符串数据的编码必须是 UTF-8。

options
由以下常量组成的二进制掩码: JSON_HEX_QUOT, JSON_HEX_TAG, JSON_HEX_AMP, JSON_HEX_APOS, JSON_NUMERIC_CHECK, JSON_PRETTY_PRINT, JSON_UNESCAPED_SLASHES, JSON_FORCE_OBJECT, JSON_PRESERVE_ZERO_FRACTION, JSON_UNESCAPED_UNICODE, JSON_PARTIAL_OUTPUT_ON_ERROR。

depth
设置最大深度。 必须大于0。

返回值
-----------------------------------------------------------
成功则返回 JSON 编码的 string 或者在失败时返回 FALSE 。
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22

注意:上面对参数明确说明(所有字符串数据的编码必须是 UTF-8)

这个函数

(PHP 5 >= 5.3.0, PHP 7)
json_last_error — 返回最后发生的错误

说明
-----------------------------------------------------------
int json_last_error ( void )
如果有,返回 JSON 编码解码时最后发生的错误。

参数
-----------------------------------------------------------
此函数没有参数。

返回值
-----------------------------------------------------------
返回一个整型(integer),这个值会是以下的常量之一:
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15

这里写图片描述




大功造成,  标记一下.

乐意黎原创

2017-08-24


原文地址: http://blog.csdn.net/aerchi/article/details/77526757

发布了430 篇原创文章 · 获赞 415 · 访问量 925万+
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 编程工作室 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览