虾米林同学在使用 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编码,啥编码都不怕了……
分享到:
相关推荐
本篇知识分享将详细解释在PHP中遇到json_encode中文乱码问题时的解决办法。 ### 1. JSON编码原理简述 JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,基于文本,独立于语言,具有良好的可读性和互...
然而,当我们处理包含中文汉字的数据时,`json_encode`默认会转义这些非ASCII字符,导致输出的JSON字符串中中文汉字显示为乱码或者\u编码形式。本资料主要探讨如何在使用`json_encode`时避免中文汉字被转义,从而...
因此,如果MySQL查询结果包含汉字且未正确设置字符编码,`json_encode`可能会导致乱码或无法解码的错误。为了解决这个问题,我们需要确保以下几个关键点: 1. **数据库编码**:确保MySQL数据库、数据表以及字段的...
虽然将`json_encode`的编码设置为UTF-8可以在很多情况下解决中文乱码问题,但是在某些情况下,这个问题可能会再次出现。 为了解决`json_encode`在处理UTF-8中文时出现的乱码问题,有开发者分享了一些有效的方法,...
$jsonencode = json_encode($arr); echo $jsonencode; ?> 程序运行结果如下: {“Name”:null,”Age”:} json_encode 函数中中文被编码成 null 了,Google 了一下,很简单,为了与前端紧密结合,Json 只支
使用该选项后,json_encode在处理中文字符时就不会再将其转换为Unicode转义序列,从而避免了输出中出现乱码的问题。 下面这段代码展示了如何使用JSON_UNESCAPED_UNICODE选项: ```php echo json_encode(array('你好...
本篇文章将围绕“php中json_encode中文编码问题分析”这一主题,详细探讨如何解决JSON编码过程中中文字符被转换为Unicode编码的问题。 首先,我们需要明白json_encode函数的基本用法。json_encode是PHP中的内置函数...
然而,在处理包含中文字符的数组时,`json_encode` 函数可能会出现中文乱码的问题。这个问题主要源于编码不一致,通常与字符集的转换有关。 在给定的代码段中,开发者遇到了`json_encode`中文不显示的问题。解决这...
为了解决这个问题,可以先将字符串转为UTF-8编码,或者在`json_encode()`时设置`JSON_FORCE_OBJECT`标志,使得非UTF-8字符串也能被正确处理。 此外,`json_encode()`还有一些可选参数,如`JSON_PRETTY_PRINT`用于...
在PHP开发过程中,经常需要处理JSON格式的数据,`json_encode`是PHP内置的一个函数,用于将PHP变量转化为JSON格式的字符串。然而,在处理包含中文字符的GBK或GB2312编码时,可能会遇到乱码问题。这是因为`json_...
这是因为JSON标准默认只支持UTF-8编码,而PHP在编码中文字符时如果没有正确处理,可能会导致乱码或丢失信息。 解决PHP的JSON中文处理问题通常有两种方法: 1. **编码转换**:在调用`json_encode()`之前,先将包含...
JSON_UNESCAPED_UNICODE则允许保留Unicode字符,避免乱码问题。 ```php $options = JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE; $json = json_encode($data, $options); ``` 在处理错误时,json_last_error()...
- 在处理JSON编码的中文字符时,确保数据在编码和解码过程中始终使用UTF-8编码,否则可能出现乱码。 总结来说,`json_encode()` 和 `json_decode()` 是PHP中处理JSON数据的关键工具,它们在Web服务、API交互以及...
最后,对于处理中文字符时可能出现的乱码问题,可以使用`iconv`或`mb_convert_encoding`函数将数据转换为UTF-8,或者在`json_encode`时使用`JSON_UNESCAPED_UNICODE`选项保留原始的中文字符而不是转换为Unicode转义...