json_encode
php unicode与中文互转
PHP • llslx520 发表了文章 • 0 个评论 • 17124 次浏览 • 2017-05-05 23:15
[h2]一、使用[em]json_encode[/em]和[em]json_decode[/em]函数:[/h2][h3]1、使用[em]json_decode()[/em]函数将unicode编码转换为中文汉字:[/h3][pre=php]<?php
$str = "\u597d\u597d\u5b66\u4e60\u5929\u5929\u5411\u4e0a";
# echo json_decode($str); # 错误
echo json_decode(sprintf('"%s"', $str)); #正确[/pre]输出:[pre=html]好好学习天天向上[/pre][b] 查看原文 »
php json_encode函数如何才能不编码中文汉字
回复PHP • liuliangsong 回复了问题 • 1 人关注 • 1 个回复 • 7743 次浏览 • 2016-10-25 11:44
条新动态, 点击查看
1、首先知道PHP的版本号
可以使用"php -v"命令查看php版本号。 # php -v
PHP 5.4.16 (cli) (built: May 12 2016 13:45:17)
Copyright (c) 1997-20... 显示全部 »
可以使用"php -v"命令查看php版本号。 # php -v
PHP 5.4.16 (cli) (built: May 12 2016 13:45:17)
Copyright (c) 1997-20... 显示全部 »
1、首先知道PHP的版本号
可以使用"php -v"命令查看php版本号。 # php -v
PHP 5.4.16 (cli) (built: May 12 2016 13:45:17)
Copyright (c) 1997-2013 The PHP Group
Zend Engine v2.4.0, Copyright (c) 1998-2013 Zend Technologies
2、PHP 5.4.0以上版本:
如果PHP版本号大于5.4.0那就好办,直接将json_encode函数的第二个参数设置成JSON_UNESCAPED_UNICODE常量即可,这样json_encode函数就不会再将汉字编码。 <?php
$data = array('name'=>'爱E族', 'url'=>'http://aiezu.com');
echo json_encode($data, JSON_UNESCAPED_UNICODE); 输出: {"name":"爱E族","url":"http:\/\/aiezu.com"}
3、PHP 5.4.0以下版本: [pre=php]<?php
$data = array('name'=>'爱E族', 'url'=>'http://aiezu.com');
$json_data = json_encode($data);
$json_data = preg_replace_callback("#\\\\u([a-z0-9]{4})#i", function( $match ) {
return mb_convert_encoding(pack("H*", $match ), "UTF-8", "UCS-2BE");
}, $json_data);
echo $json_data; 输出: {"name":"爱E族","url":"http:\/\/aiezu.com"}
可以使用"php -v"命令查看php版本号。 # php -v
PHP 5.4.16 (cli) (built: May 12 2016 13:45:17)
Copyright (c) 1997-2013 The PHP Group
Zend Engine v2.4.0, Copyright (c) 1998-2013 Zend Technologies
2、PHP 5.4.0以上版本:
如果PHP版本号大于5.4.0那就好办,直接将json_encode函数的第二个参数设置成JSON_UNESCAPED_UNICODE常量即可,这样json_encode函数就不会再将汉字编码。 <?php
$data = array('name'=>'爱E族', 'url'=>'http://aiezu.com');
echo json_encode($data, JSON_UNESCAPED_UNICODE); 输出: {"name":"爱E族","url":"http:\/\/aiezu.com"}
3、PHP 5.4.0以下版本: [pre=php]<?php
$data = array('name'=>'爱E族', 'url'=>'http://aiezu.com');
$json_data = json_encode($data);
$json_data = preg_replace_callback("#\\\\u([a-z0-9]{4})#i", function( $match ) {
return mb_convert_encoding(pack("H*", $match ), "UTF-8", "UCS-2BE");
}, $json_data);
echo $json_data; 输出: {"name":"爱E族","url":"http:\/\/aiezu.com"}
php json_encode函数如何才能不编码中文汉字
回复PHP • liuliangsong 回复了问题 • 1 人关注 • 1 个回复 • 7743 次浏览 • 2016-10-25 11:44
php unicode与中文互转
PHP • llslx520 发表了文章 • 0 个评论 • 17124 次浏览 • 2017-05-05 23:15
[h2]一、使用[em]json_encode[/em]和[em]json_decode[/em]函数:[/h2][h3]1、使用[em]json_decode()[/em]函数将unicode编码转换为中文汉字:[/h3][pre=php]<?php
$str = "\u597d\u597d\u5b66\u4e60\u5929\u5929\u5411\u4e0a";
# echo json_decode($str); # 错误
echo json_decode(sprintf('"%s"', $str)); #正确[/pre]输出:[pre=html]好好学习天天向上[/pre][b] 查看原文 »