日期:2014-05-16  浏览次数:20378 次

gbk编码文件传输json实例

cline.php

<?php
$str='此地无银三百两';
$str = iconv('gbk', 'utf-8', $str);  //如果不进行转码的话,服务端json_decode()返回null
$str = urlencode($str);
$data = json_encode($str);
$url  = "http://localhost/test/server.php?json=$data";

//初始化
$ch = curl_init();
//设置选项,包括URL
curl_setopt($ch, CURLOPT_URL, "$url");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HEADER, 0);
//执行并获取HTML文档内容
$output = curl_exec($ch);
//释放curl句柄
curl_close($ch);
//打印获得的数据
print_r($output);
?>


server.php

<?php

$str = $_GET["json"];
$str = json_decode($str);
$str = urldecode($str);
$str = iconv('utf-8', 'gbk', $str); //此处转码是为了在文本和浏览器正常输出gbk格式的中文
var_dump($str);

file_put_contents("./test.log","$str");

echo 'shu chu dao 客户端<br/>';

$errorinfo = json_last_error();  //返回最后发生的错误说明
echo $errorinfo;   //错误信息输出到客户端,输出0表示没有错误

?>

 

cline.php页面输出(浏览器编码为gbk):

string '此地无银三百两' (length=14)
shu chu dao 客户端
0