json_encode 和 json_decode 只支持utf-8编码的字符串,GBK的字符串要用json就得转换成utf-8字符串

看效果

<?php

header("Content-type:text/html; charset=utf-8");

$dirname = $_GET['dirname'];
$dirname = iconv('utf-8', 'GBK', $dirname); $filename = array(); function read_all ($dir){
global $filename; //使用全局变量 if(!is_dir($dir)) return false; $handle = opendir($dir);
if($handle){
while(($fl = readdir($handle)) != false){
$temp = $dir.DIRECTORY_SEPARATOR.$fl;
if(is_dir($temp) && $fl!='.' && $fl != '..'){
read_all($temp);
}else{
if($fl!='.' && $fl != '..'){
$temp = iconv('GBK', 'utf-8', $temp); //再将GBK编码转换为utf-8编码
$filename[] = $temp;
}
}
}
}
} read_all($dirname); echo json_encode($filename, JSON_UNESCAPED_UNICODE); ?>

不使用iconv转换编码效果



使用iconv转换编码效果



JSON_UNESCAPED_UNICODE

JSON_UNESCAPED_UNICODE是PHP5.4版本后新加的。加入以后,就不会对中文编码

加入前后的效果对比

echo json_encode($filename);
echo '<br>';
echo json_encode($filename, JSON_UNESCAPED_UNICODE);

PHP json中文的更多相关文章

  1. php json中文处理方法,请json更懂中文

    1.php5.3版本及以下.的处理方式 /** *php5.3版本以前,json中文问题的解决解决方案 */ function encode_json($str) { return urldecode ...

  2. springMvc解决json中文乱码

    springMvc解决json中文乱码 springMvc解决json中文乱码,springMvc中文乱码,spring中文乱码 >>>>>>>>> ...

  3. 解决@ResponseBody注解返回的json中文乱码问题

    1. 简介 主要解决@ResponseBody注解返回的json中文乱码问题. 2.解决方案 2.1mvc加上注解(推荐此方法) 在mvc配置文件中假如下面配置(写在 <mvc:annotati ...

  4. 解决springmvc使用ResponseBody注解返回json中文乱码问题

    spring版本:4.2.5.RELEASE 查看“org.springframework.http.converter.StringHttpMessageConverter”源码,中有一段说明: B ...

  5. 解决跨操作系统平台JSON中文乱码问题

    解决跨操作系统平台JSON中文乱码问题 LINUX统一使用utf-8编码,WINDOWS却不是. LINUX中间件,传输JSON给WINDOWS程序,会乱码. 解决办法: 对JSON字段是字符串类型的 ...

  6. poco json 中文字符,抛异常JSON Exception -->iconv 转换 备忘录。

    起因 最近linux服务器通信需要用到json. jsoncpp比较出名,但poco 1.5版本以后已经带有json库,所以决定使用poco::json(linux 上已经用到了poco这一套框架). ...

  7. php中的JSON中文处理

    最近在PHP中要输出JSON,上网查了一下,对中文支持不太好,要不就先转成utf-8的编码,再用json_encode生成,客户端还要再utf-8转中文.对于网页已经用GB2312的服务器,不想这样折 ...

  8. SpringMVC的@ResponseBody返回JSON,中文乱码问题的解决.

    SpringMVC的@ResponseBody,返回json,如果有中文显示乱码的解决办法. 在SpringMVC的配置文件中 <bean class="org.springframe ...

  9. SSM框架:解决后台传数据到前台中文乱码问题,使用@ResponseBody返回json 中文乱码

    解决方法一:@RequestMapping(value="/getphone",produces = "text/plain;charset=utf-8") / ...

  10. python中文编码&json中文输出问题

    python2.x版本的字符编码有时让人很头疼,遇到问题,网上方法可以解决错误,但对原理还是一知半解,本文主要介绍 python 中字符串处理的原理,附带解决 json 文件输出时,显示中文而非 un ...

随机推荐

  1. 5.JavaCC官方入门指南-概述

    一.前言   在最开始使用JavaCC的时候,从网上查询了许多资料,但是网上的资料水平是参差不齐的,走了许多弯路,不得已自己查阅了英文版官网文档.令我伤心的是最后我回过头来再看那些博客资料时,发现其实 ...

  2. [视频教程] ubuntu系统下安装最新版的MySQL

    视频地址: https://www.bilibili.com/video/av69256331/ 官网文档https://dev.mysql.com/doc/mysql-apt-repo-quick- ...

  3. 面向过程编程&面向对象编程

    面向过程编程 Procedure Oriented Programming C语言是面向过程编程的,面向过程编程主要使用顺序.条件选择.循环三种基本结构来编写程序. 顺序:按照时间轴顺序完成每个处理: ...

  4. python 连接oracle -- sqlalchemy及cx_Oracle的使用详解

    python连接oracle -- sqlalchemy import cx_Oracle as orcl import pandas as pd from sqlalchemy import cre ...

  5. day59_9_25中间键与登录认证

    一.django中间件简介. 在django中,有这样的生命周期: 中间件就是处于wsgiref和urls模块中间,可以拦截所有的请求,其中有7个默认中间件: MIDDLEWARE = [ 'djan ...

  6. Single-SPA 前端微服务化 动态路由多系统合并

    每日优鲜供应链前端团队微前端改造 动态注册路由,然后根据路由判断加载子项目js资源.子项目webpack需要设置externals,然后用systemjs接管external的包加载 webpack ...

  7. LG3205/BZOJ1996 「HNOI2010」合唱队 区间DP

    区间DP 区间DP: 显然是一个区间向左右拓展形成的下一个区间,具有包含关系,所以可以使用区间DP. 状态设计: 考虑和关路灯一样设计状态 因为不知道当前这个区间是从哪个区间拓展而来,即不知道这个区间 ...

  8. NOIP模拟赛three(3)

    题目描述 Description 很久很久以前,有两个长度为 \(n\) 的排列 \(a\) 和 \(b\) 以及一个长度为 \(n\) 的由 \(1\) 和\(2\) 组成的序列 c.对于 \(1& ...

  9. 基于Nginx和openssl实现https

    [root@localhost ssl]# yum -y install openssl [root@localhost ssl]# mkdir /usr/local/nginx/conf/ssl/ ...

  10. babel速览

    babel babel初衷 在es6出现之后,由于此版本的巨大改变,给人们带来了很多革命性的技术支持,但是当时很多浏览器对es6支持有限,babel就是为了达到写最新的语法,可以在任意浏览器运行而出现 ...