搜索

首页  >  问答  >  正文

json_encode在有效的JSON字符串上返回null

<p>我正在使用PHP的json_decode函数来解析由JavaScript的JSON.stringify创建的JSON字符串;</p><p>JSON似乎是有效的:</p><p>JSON字符串:</p><p><br /></p> <pre class="brush:php;toolbar:false;">"{"m_user_name":"test","m_user_phone":"+60 12-384 7961","m_user_city":"Kuala Lumpur","m_user_linkedin":"example@gmail.com","m_user_g_plus":"example@gmail.com"}"</pre> <p>JSON最后的错误消息:"语法错误"</p><p>好的,如果我直接将字符串粘贴到json_decode中,它就可以工作。我正在通过一个form_data对象通过ajax发送字符串,然后尝试解码post变量。</p><p>以下是ajax请求的代码:</p><p><br /></p> <pre class="brush:php;toolbar:false;">$.ajax({ type: "POST", url: ajaxurl, data: formdata, cache: false, contentType: false, processData: false, beforeSend: function () { toggle_loading_spinner(); }, success: function (data) { console.log(data); toggle_loading_spinner(); }, });</pre> <p>我尝试使用preg_replace('/[x00-x1Fx80-xFF]/', '', $JSON_STRING)来删除不需要的符号,但是出现了相同的错误。</p>
P粉176980522P粉176980522544 天前556

全部回复(1)我来回复

  • P粉814160988

    P粉8141609882023-07-29 14:53:06

    json_decode()函数仅适用于以UTF-8编码的字符串。输入可能是不同的编码。在删除不需要的字符后,尝试将编码转换为UTF-8。以下是如何进行转换的参考资料:

    https://www.php.net/manual/en/function.mb-convert-encoding.php

    回复
    0
  • 取消回复