繁体   English   中英

php json_encode返回null

[英]php json_encode returning null

Array
(
    [sEcho] => 1
    [iTotalRecords] => 7521
    [iTotalDisplayRecords] => 1
    [aaData] => Array
        (
            [0] => Array
                (
                    [0] => Nordic Capital Buys SiC Processing
                    [1] => 2010-06-21/nordic-capital-buys-sic-processing
                    [2] => PEHub Media
                    [3] => Business
                    [4] => completed
                    [5] => Nordic Capital has acquired a 70% stake in SiC Processing AG, a German industrial recycling company, from Frog Capital. No sale price was disclosed.  SiC Processing’s founding family retains a 25% holding, while former lead investor Zouk Ventures retains a 5% stake.

                    [6] => Admin, China, Frog Capital, Germany, Italy, Iyad Omari, Manufacturing, Norway, PEHub Media, Photovoltaic Wafer Manufacturing, Renewable Energy, Semiconductor, United States
                )

        )

)

echo json_encode($myArr);

{“sEcho”:“1”,“iTotalRecords”:7521,“iTotalDisplayRecords”:“1”,“aaData”:[[“”Nordic Capital购买SiC处理</a> </ div>“,”2010-06- 21 / nordic-capital-buys-sic-processing </ div>“,”PEHub Media“,”Business“,”completed“, null ,”Admin,China,Frog Capital,德国,意大利,Iyad Omari,制造业,挪威,PEHub Media,光伏晶圆制造,可再生能源,半导体,美国]]}

注意完成后字符串中间的null

为什么这样,我需要执行什么转义/操作才能对其进行编码?

我试过, addslashes

从手册:

请注意,如果您尝试对包含非utf值的数组进行编码,则会在生成的JSON字符串中获取空值。 您可以使用array_map函数批量编码数组的所有元素:

$encodedArray = array_map(utf8_encode, $myArr);
echo json_encode($encodedArray);

我只是尝试了完全相同的代码,它返回以下内容:

{"var1":"test string","var2":"Nordic Capital has acquired a 70% stake in SiC Processing AG, a German industrial recycling company, from Frog Capital. No sale price was disclosed.  SiC Processing\u2019s founding family retains a 25% holding, while former lead investor Zouk Ventures retains a 5% stake.","var3":"test string 3"}

您运行的是哪个版本的PHP? 这是来自您的本地主机还是您在远程盒子上运行它?

实际上它不会返回null, http://codepad.org/A34KdUf5

也许您的PHP版本不支持json_encode()。

在5.2.13上为我工作。 确保您至少使用PHP 5.2.0并且PHP未使用--disable-json编译。 您可能还想检查是否启用了错误报告(和/或日志记录)。

更简单的方法是$store_name = utf8_encode(name_of_varaible)但请确保您的字符集是ISO-8859-1.

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM