文档章节

PHP JSON编码后,中文乱码的解决方式

RablePHP
 RablePHP
发布于 2014/11/25 16:06
字数 254
阅读 77
收藏 0

1,有些时候,需要写接口,传递一些中文值,那么JSON编码,会出现目前以下两种情况!

    a.输出乱码

<?php
    $testJSON=array('name'=>'中文字符串','value'=>'test');  
    echo json_encode($testJSON);  
?> 
输出结果:{“name”:”\u4e2d\u6587\u5b57\u7b26\u4e32″,”value”:”test”}

    b.不输出乱码

    使用UTF8编码的字符,使用json_encode也出现了中文乱码。解决办法是在使用json_encode之前把字符用

    函数urlencode()处理一下,然后再json_encode,输出结果的时候在用函数urldecode()转回来。具体如下:

<?php  
    $testJSON=array('name'=>'中文字符串','value'=>'test');  
    //echo json_encode($testJSON);  
    $testJSON=ReturnUrlencode($testJSON);


	/**
	 * [ReturnUrlencode 用递归的方式来遍历所有的数组并且解析]
	 * @param [type] $arr [description]
	 */
	function ReturnUrlencode($arr){
		foreach ($arr as $key => $value){
			if(is_array($value)){	
				$arr[$key]=ReturnUrlencode($value);
			}else{
				$arr[$key]=urlencode($value);
			}
		}
		return $arr;
	}

    print_r(urldecode ( json_encode ( $testJSON ) ) );  
?> 
输出结果:{“name”:”中文字符串”,”value”:”test”}

 遍历递归算法!将数组中的所有值,urlencode!

 

© 著作权归作者所有

RablePHP
粉丝 15
博文 47
码字总数 11895
作品 0
巴南
程序员
私信 提问
PHP json_encode() 函数详解及中文乱码问题

在 php 中使用 json_encode() 内置函数(php > 5.2)可以使用得 php 中数据可以与其它语言很好的传递并且使用它。 这个函数的功能是将数值转换成json数据存储格式。 ? 1 2 3 4 5 6 7 8 9 程序运...

zyt_1978
2016/06/19
85
0
echo json_encode() 输出中文不显示

PHP默认的jsonencode编码出来的是unicode编码的,也就是u的编码,用PHP的jsonencode来处理中文的时候, 中文都会被编码, 变成不可读的, 类似”u***”的格式。 虽然unicode编码可以在不同的页面...

ITCHN
2016/12/19
1K
0
关于java发送http请求时中文乱码的一种解决办法

在jsp中常见的乱码解决办法无外乎是关于get和post两种方式的,但只有切实地在实践中使用时才会注意或者说注重到其他方式。例如,在http请求头中传送中文参数,出现乱码,如何解决? 实际场景...

chace0120
2014/03/13
26.7K
0
PHP 数据加密工具类

PHP 数据加密工具类 最近在写一个需要加密传输数据的小项目,顺便把用的加密方法封装成一个工具类,其实就是按字节位把ASCII码进行位运算 加密解密工具类 使用方法 注意如果传输的是 json 字...

big_cat
2016/06/20
104
0
记录一次关于Cookie、Json中文乱码的解决方法

今天工作上遇到一个问题,需要把一个对象集合List存入一个Cookie,按照原来都封装方法存入都ok,但是到取值都时候中文会变成乱码。 首先,我们可以确认Json和Cookie都有可能乱码,我们可以在...

贰拾~
06/26
0
0

没有更多内容

加载失败,请刷新页面

加载更多

排序––快速排序(二)

根据排序––快速排序(一)的描述,现准备写一个快速排序的主体框架: 1、首先需要设置一个枢轴元素即setPivot(int i); 2、然后需要与枢轴元素进行比较即int comparePivot(int j); 3、最后...

FAT_mt
今天
4
0
mysql概览

学习知识,首先要有一个总体的认识。以下为mysql概览 1-架构图 2-Detail csdn |简书 | 头条 | SegmentFault 思否 | 掘金 | 开源中国 |

程序员深夜写bug
今天
10
0
golang微服务框架go-micro 入门笔记2.2 micro工具之微应用利器micro web

micro web micro 功能非常强大,本文将详细阐述micro web 命令行的功能 阅读本文前你可能需要进行如下知识储备 golang分布式微服务框架go-micro 入门笔记1:搭建go-micro环境, golang微服务框架...

非正式解决方案
今天
6
0
前端——使用base64编码在页面嵌入图片

因为页面中插入一个图片都要写明图片的路径——相对路径或者绝对路径。而除了具体的网站图片的图片地址,如果是在自己电脑文件夹里的图片,当我们的HTML文件在别人电脑上打开的时候图片则由于...

被毒打的程序猿
今天
9
0
Flutter 系列之Dart语言概述

Dart语言与其他语言究竟有什么不同呢?在已有的编程语言经验的基础上,我们该如何快速上手呢?本篇文章从编程语言中最重要的组成部分,也就是基础语法与类型变量出发,一起来学习Dart吧 一、...

過愙
今天
6
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部