php实现echo json_encode正确显示汉字

<?php
header(‘Content-type: text/html; charset=utf-8‘);
/*
function showmessage($msg = ‘‘, $redirect = ‘‘, $delay = 3){
    if($_GET[‘format‘] == ‘json‘){
        $result = array(‘msg‘ => $msg, ‘redirect‘ => $redirect, ‘delay‘ => $delay);
        echo json_encode($result);
        exit();
    }
    include ‘message.php‘;
    exit();
}

showmessage(‘helloworld‘,‘www.baidu.com‘,5);
*/
/*
$arr = array
       (
          ‘Name‘=>‘希亚‘,
          ‘Age‘=>20
       );

$jsonencode = json_encode($arr);
echo $jsonencode;
*/
$array = array
    (
         ‘title‘=>iconv("GB2312","UTF-8//IGNORE",‘这里是中文标题‘),
        ‘body‘=>‘abcd...‘
    );

echo json_encode($array);

$text = "This is the Euro symbol ‘€‘.";

echo ‘Original : ‘, $text, PHP_EOL;
echo ‘TRANSLIT : ‘, iconv("UTF-8", "ISO-8859-1//TRANSLIT", $text), PHP_EOL;
echo ‘IGNORE   : ‘, iconv("UTF-8", "ISO-8859-1//IGNORE", $text), PHP_EOL;
//echo ‘Plain    : ‘, iconv("UTF-8", "ISO-8859-1", $text), PHP_EOL;
/**************************************************************
 *
 *    使用特定function对数组中所有元素做处理
 *    @param    string    &$array        要处理的字符串
 *    @param    string    $function    要执行的函数
 *    @return boolean    $apply_to_keys_also        是否也应用到key上
 *    @access public
 *
 *************************************************************/
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--;
}

/**************************************************************
 *
 *    将数组转换为JSON字符串(兼容中文)
 *    @param    array    $array        要转换的数组
 *    @return string        转换得到的json字符串
 *    @access public
 *
 *************************************************************/
function JSON($array) {
    arrayRecursive($array, ‘urlencode‘, true);
    $json = json_encode($array);
    return urldecode($json);
}
$array1 = array
       (
          ‘Name‘=>‘希亚‘,
          ‘Age‘=>20
       );
$array = array
       (
          ‘Name‘=>$array1,
          ‘Age‘=>20
       );

echo JSON($array);
?> 
时间: 2024-11-03 21:11:13

php实现echo json_encode正确显示汉字的相关文章

Python:读取Excel表格时出现的u&#39;\u51c6’ 无法正确显示汉字

读取Excel后,想显示其中一行的元素,结果读出来是这样[u'\u51c6\u8003\u8bc1\u53f7', u'\u8003\u751f\u59d3\u540d'],始终不显示正常的汉字 依照网上的方法直接print()即可输出,试验后发现确实可以,不过一次只能输出一个元素,多余一个元素则依旧 后查找得知解决方法:需要用到json库 1 import json 2 #……文件的读取略去 3 #json.dumps(A).decode("unicode-escape") 4 #这

逆向工程第003篇:令计算器程序显示汉字(上)

一.前言 计算器(Calc.exe)程序在Windows系统中已经存在了很长的时间,也是我们十分常用的软件.但是一般来说,它所显示的都是阿拉伯数字,而且也没有字符显示的切换.这次我会以两篇文章来进行讨论如何让计算器程序显示汉字的数字.本篇来讨论修改的基本原理,下一篇则来讨论如何编程实现. 二.修改原理剖析 在我以前的很多文章中,始终在强调,Windows编程在很大程度上其实就是各种API函数的堆砌,谁掌握了更多的API函数,那么他往往就能够编写出功能齐全的强大软件.当然,编写出优秀的软件还由其它

让secureCRT正确显示中文

1.安装linux时选择中文系统,或安装后vi /etc/sysconfig/i18n文件改为:LANG= zh_CN.UTF-8 2.在secureCRT里面: Session Options(会话选项) -> Terminal(终端) -> Appearance(显示), 将Fonts(字体)选择成fixedsys将charater(字符)选择成UTF-8就支持中文了. 让secureCRT正确显示中文,布布扣,bubuko.com

grails2.3.x创建插件,gsp页面不能正确显示内容

grails2.3.x创建plugin时,默认的Config.groovy只有简单的log设置,这时候,页面添加数据之后,正确的逻辑是show新增的数据,但却变成404,需要在Config.groovy中增加以下代码: grails.mime.types = [ // the first one is the default format all:           '*/*', // 'all' maps to '*' or the first available format in wit

native-base中icon不能正确显示[转]

初次接触native-base,在使用它的Icon组件的时候碰到了一个问题:图标没能正确显示!(在expo调试模式下是正常的) native-base官网给的使用Icon的例子 怎么找到适合我的图标呢? github上的react-native-vector-icons,介绍了怎样在项目中使用图标 从上面的第一个链接中我们知道了Icon组件最简单的用法,如下: 从上面的第二个链接中我们知道了native-base给提供了哪些图标让我们使用.从这里我们可以看出有不止一个Icon提供者. (例如:E

json_encode如何防止汉字转义成unicode

众所周知,json_encode通常会把json中的汉字转义成unicode,但是这并不一定是我们想要的.有时候,我们需要获得汉字形式的json字符串,比如需要获得gbk编码的json字符串(只要把汉字形式的字符串转码就可以得到了).有什么好办法么? php官方听到了这个需求,并提供了一种可靠的解决方案:JSON_UNESCAPED_UNICODE.这个参数可以保证json_encode不再将汉字转为unicode. 似乎这样就解决了?当我们高高兴兴的用这个参数的时候,发现并没有什么卵用.仔细一

uploadify不能正确显示中文的按钮文本的解决办法

uploadify 目前不能正确显示中文的按钮文本. 我发现bug的原因是uploadify错误的使用了 js 的 escape 和 flash 的 unescape配对,而这2个是不兼容的.正确的转码传递参数应该用 encodeURI/decodeURI 配对,这2个函数的行为在js和flash里是相同的.其他地方的escape/unescape也应该替换掉,下面只修改影响按钮文本的部分.1. jquery.uploadify.v2.1.4.js 70行 将if (settings.butto

如何使cmd窗口正确显示utf-8编码的文字

在windows中,如何使用cmd命令行窗口正确显示编码为utf-8格式的文字呢? 正确的步骤如下: 1, 打开cmd命令行窗口 2, 输入命令 >chcp 65001 数字65001代表的是cmd窗口中utf-8格式的编码.cmd窗口默认编码为gbk,数字代码为936 D:\>chcp 65001 Active code page: 65001 3,在cmd窗口标题栏里右键点击,调出右键菜单,点击属性->字体,将字体改成Lucida Console, OK,可以正确显示utf-8编码的

如何正确显示和比较浮点数

#include<iostream>using namespace std;int main(){ float sum=0.0; for(int i=0;i<10;i++) {  sum=sum+0.01; }  cout<<sum<<endl; if(sum==0.1) {  cout<<"相等"<<endl; } else {  cout<<"不相等"<<endl; } r