PHP学习散记_编码(json_encode 中文不显示)

yipeiwu_com6年前PHP代码库
在网上找到一种解决方法:
复制代码 代码如下:

<?php
/* 处理json_encode中文乱码 */
$data = array ('game' => '冰火国度', 'name' => '刺之灵', 'country' => '冰霜国', 'level' => 45 );
echo json_encode ( $data );
echo "<br>";
$newData = array ();
foreach ( $data as $key => $value ) {
$newData [$key] = urlencode ( $value );
}
echo urldecode ( json_encode ( $newData ) );
?>

后来请教了别人,还可以用base64编码,不过base64编码不可以放在URL中,百度是这样解释的:

标准的Base64并不适合直接放在URL里传输,因为URL编码器会把标准Base64中的“/”和“+”字符变为形如“%XX”的形式,而这些“%”号在存入数据库时还需要再进行转换,因为ANSI SQL中已将“%”号用作通配符。

不过我的数据是要通过POST发送的,并不在HTTP 的head中,而在message-body里,所以不受影响。

json_encode 只能接受utf-8格式的数据

urlencode base64_encode 只能接受字符串类型的参数,所以无法对整个数组进行编码。

相关文章

PHP获取POST数据的几种方法汇总

一、PHP获取POST数据的几种方法 方法1、最常见的方法是:$_POST['fieldname']; 说明:只能接收Content-Type: application/x-www-f...

mysq GBKl乱码

我现在有一个sql文件,里面内容是gbk的。我现在显示全是乱码。 就只是用mysql 4.0.26能显示。 用4.1以上的死活都显示不了。头大了。望大家指点指点,感恩不尽。 我...

PHP 多进程与信号中断实现多任务常驻内存管理实例方法

PHP 多进程与信号中断实现多任务常驻内存管理实例方法

本文章基于 pcntl 扩展做的多进程测试。 进程调度策略 父子进程的调度由操作系统来负责,具体先调度子进程还是父进程由系统的调度算法决定,当然可以在父进程加上延时或是调用进程回收函数...

PHP与MongoDB简介|安全|M+PHP应用实例详解

一、MongoDB简介MongoDB (名称来自"humongous") 是一个可扩展的、高性能、开源、模式自由、面向文档的数据库,集文档数据库、键值对存储和关系型数据库的优点于一身。官...

php读取mssql的ntext字段返回值为空的解决方法

本文实例讲述了php读取mssql的ntext字段返回值为空的解决方法。分享给大家供大家参考。具体分析如下: 今天在使用php连接mssql数据库时发现ntext字段的内容无法显示,经过...