`

PHP之json_encode中文乱码的解决办法

    博客分类:
  • php
阅读更多
虾米林同学在使用 Extjs作动态处理有独道之处,最近在使用PHP处理Json串时,遇到中文转换的问题。起初以为是编码问题,在单调后发现并不是编码问题,就要处理 Json转换时导致的乱码。

    苦恼了一阵子,找到了解决办法,特此备注一下:

<?php
// 将数组转换成Json格式,中文需要进行URL编码处理
function Array2Json($array) {
    arrayRecursive($array, 'urlencode', true);
    $json = json_encode($array);
    $json = urldecode($json);
    // ext需要不带引号的bool类型
    $json = str_replace("\"false\"","false",$json);
    $json = str_replace("\"true\"","true",$json);
    return $json;
}

function arrayRecursive(&$array, $function, $apply_to_keys_also = false)
{
    static $recursive_counter = 0;
    if (++$recursive_counter > 1000) {
        die('possible deep recursion attack');
    }
    foreach ($array as $key => $value) {
        if (is_array($value)) {
            arrayRecursive($array[$key], $function, $apply_to_keys_also);
        } else {
            $array[$key] = $function($value);
        }

        if ($apply_to_keys_also && is_string($key)) {
            $new_key = $function($key);
            if ($new_key != $key) {
                $array[$new_key] = $array[$key];
                unset($array[$key]);
            }
        }
    }
    $recursive_counter--;
}
?>

    进行了一URL编码,啥编码都不怕了……
0
0
分享到:
评论

相关推荐

    PHP json_encode中文乱码问题的解决办法

    本篇知识分享将详细解释在PHP中遇到json_encode中文乱码问题时的解决办法。 ### 1. JSON编码原理简述 JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,基于文本,独立于语言,具有良好的可读性和互...

    PHP JSON_ENCODE 不转义中文汉字的方法.rar

    然而,当我们处理包含中文汉字的数据时,`json_encode`默认会转义这些非ASCII字符,导致输出的JSON字符串中中文汉字显示为乱码或者\u编码形式。本资料主要探讨如何在使用`json_encode`时避免中文汉字被转义,从而...

    PHP MYSQL 查询汉字jsonencode处理

    因此,如果MySQL查询结果包含汉字且未正确设置字符编码,`json_encode`可能会导致乱码或无法解码的错误。为了解决这个问题,我们需要确保以下几个关键点: 1. **数据库编码**:确保MySQL数据库、数据表以及字段的...

    php中json_encode UTF-8中文乱码的更好解决方法

    虽然将`json_encode`的编码设置为UTF-8可以在很多情况下解决中文乱码问题,但是在某些情况下,这个问题可能会再次出现。 为了解决`json_encode`在处理UTF-8中文时出现的乱码问题,有开发者分享了一些有效的方法,...

    PHP json_encode() 函数详解及中文乱码问题

    $jsonencode = json_encode($arr); echo $jsonencode; ?&gt; 程序运行结果如下: {“Name”:null,”Age”:} json_encode 函数中中文被编码成 null 了,Google 了一下,很简单,为了与前端紧密结合,Json 只支

    PHP使用json_encode函数时不转义中文的解决方法

    使用该选项后,json_encode在处理中文字符时就不会再将其转换为Unicode转义序列,从而避免了输出中出现乱码的问题。 下面这段代码展示了如何使用JSON_UNESCAPED_UNICODE选项: ```php echo json_encode(array('你好...

    php中json_encode中文编码问题分析

    本篇文章将围绕“php中json_encode中文编码问题分析”这一主题,详细探讨如何解决JSON编码过程中中文字符被转换为Unicode编码的问题。 首先,我们需要明白json_encode函数的基本用法。json_encode是PHP中的内置函数...

    PHP学习散记_编码(json_encode 中文不显示)

    然而,在处理包含中文字符的数组时,`json_encode` 函数可能会出现中文乱码的问题。这个问题主要源于编码不一致,通常与字符集的转换有关。 在给定的代码段中,开发者遇到了`json_encode`中文不显示的问题。解决这...

    php使用json_encode对变量json编码

    为了解决这个问题,可以先将字符串转为UTF-8编码,或者在`json_encode()`时设置`JSON_FORCE_OBJECT`标志,使得非UTF-8字符串也能被正确处理。 此外,`json_encode()`还有一些可选参数,如`JSON_PRETTY_PRINT`用于...

    php中json_encode处理gbk与gb2312中文乱码问题的解决方法

    在PHP开发过程中,经常需要处理JSON格式的数据,`json_encode`是PHP内置的一个函数,用于将PHP变量转化为JSON格式的字符串。然而,在处理包含中文字符的GBK或GB2312编码时,可能会遇到乱码问题。这是因为`json_...

    PHP的Json中文处理解决方案

    这是因为JSON标准默认只支持UTF-8编码,而PHP在编码中文字符时如果没有正确处理,可能会导致乱码或丢失信息。 解决PHP的JSON中文处理问题通常有两种方法: 1. **编码转换**:在调用`json_encode()`之前,先将包含...

    由php对象生成json字符串 把php对象变成json字符串.zip

    JSON_UNESCAPED_UNICODE则允许保留Unicode字符,避免乱码问题。 ```php $options = JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE; $json = json_encode($data, $options); ``` 在处理错误时,json_last_error()...

    浅析php中json_encode()和json_decode()

    - 在处理JSON编码的中文字符时,确保数据在编码和解码过程中始终使用UTF-8编码,否则可能出现乱码。 总结来说,`json_encode()` 和 `json_decode()` 是PHP中处理JSON数据的关键工具,它们在Web服务、API交互以及...

    php json_encode奇怪问题说明

    最后,对于处理中文字符时可能出现的乱码问题,可以使用`iconv`或`mb_convert_encoding`函数将数据转换为UTF-8,或者在`json_encode`时使用`JSON_UNESCAPED_UNICODE`选项保留原始的中文字符而不是转换为Unicode转义...

Global site tag (gtag.js) - Google Analytics