[07-12-8更新]字符编码 中文乱码 json escape unescape
时间:2007-09-08
来源:互联网
由于昨天的教训,array_open处写的太乱,今天早上灵感突然来了,于是重写array_open函数,并去掉了get_pos函数,取而代之的是string_endpos()函数,而且可以和string_find共用
因为不是出现错误而更改,所以又上传了一个包

2007-12-7:
修改了array_open处严重错误,感谢XMUmeyu在18#提出错误
也是今天花一天时间 在算法上过不去 差点和别人打架
算法的优化以后在说,脑细胞已不足

2007-11-21:
修改了escape unescape的几处bug
解决了string_find一处bug
优化getpos中一处算法
可用方法
Charset::convert(string input,string incharset,string outcharset)
Charset::unescape(string escaped,string outcharset)
Charset::escape(string string,string incharset)
Charset::jsondecode(string encoded,string outcharset)
Charset::jsonencode(mix value,string incharset)
Charset::pinYin(string chinese,string incharset)
PHP代码:
<?php
/**
* 最后更新于 2007-8-21 12:05 By muqiao
* @author muqiao
* 说明:
* jsonencode 有参考Services_JSON 但有很大区别 此处可以将utf-8 gb2312 big5都可以jsonencode
* jsondecode 自己原创 该算法是模拟目录读取的方法
* 可以将json中中文unicode编码unescape为gbk big5 utf8
*/
define('TABLE_DIR','./table');
define('USEEXISTS',FALSE);//是否使用系统存在的php内置编码转换函数
//其实php内置编码转换函数转换的不够好
class Charset{
static public function convert($source,$source_lang,$target_lang='utf-8');
static public function unescape($str,$charset='utf-8');
static public function escape($str,$charset='utf-8');
static public function jsondecode($encoded,$charset='utf-8');
static public function jsonencode($var,$charset=NULL);
static public function PinYin($str,$charset='utf-8');
}
//详细见压缩包
?>
作者: muqiao 发布时间: 2007-09-08
作者: scauren 发布时间: 2007-09-08
作者: wedypei 发布时间: 2007-09-10
作者: cator 发布时间: 2007-09-10
先下来看看。
作者: 特蓝克斯 发布时间: 2007-09-12
作者: moufer 发布时间: 2007-09-12
作者: muqiao 发布时间: 2007-09-12
真是太让我失望了
着可是我的原创帖,以前我很垃圾的帖都加了
这个咋不加呢
作者: muqiao 发布时间: 2007-10-21
作者: forest 发布时间: 2007-10-21
作者: edwardhey 发布时间: 2007-10-22
是不是要用php4重写一个才有人看
作者: muqiao 发布时间: 2007-11-16
作者: muqiao 发布时间: 2007-11-21
作者: superpower 发布时间: 2007-11-22
作者: skyfen 发布时间: 2007-11-24
作者: skyfen 发布时间: 2007-11-24
作者: skyfen 发布时间: 2007-11-24
作者: pets511 发布时间: 2007-12-03
当数组长度大于1时就出错了,
$b = array(0 => array('审核', 'AUDITING'),
1 => array('正常', 'ACTIVATED'),
2 => array(array('正常', 'ACTIVATED'), array('审核', 'AUDITING'))
);
var_dump(Charset::jsondecode(Charset::jsonencode($b)));
这样修改了一下暂时可以支付多维数组和长度大于1的数组,
但不知道会不会引起其他问题,没细查,楼主看一下
...
elseif($newpos===FALSE){
while($lastpos = getpos($string,$end,$endpos+1))
$endpos = $lastpos;
$i-=1;
continue;
...
}
作者: XMUmeyu 发布时间: 2007-12-06
作者: muqiao 发布时间: 2007-12-06

作者: tc318 发布时间: 2007-12-06
作者: muqiao 发布时间: 2007-12-07

作者: yiyun8541 发布时间: 2008-03-10

作者: yhttech 发布时间: 2008-04-13
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28