php 实现 js escape unescape
来源:互联网 发布:电信4g网络 怎样设置 编辑:程序博客网 时间:2024/05/02 06:09
在 ajax 异步处理数据的时候,中文很容易出来乱码,所以就要用到 php 实现的 javascript escape 和 unescape 来避免中文出现乱码。
在网上找了好多,关于 javascript 的 escape 和 unescape,有很多都不是很理想
兼容 linux 系统的很少,找了几个好的,有的作了部份修改,现在发出来和大家分享一下
/* 解码 js unescape() */
function unescape($str)
{
$str = rawurldecode($str);
preg_match_all("/%u.{4}|&#x.{4};|&#d+;|.+/U",$str,$r);
$ar = $r[0];
foreach($ar as $k => $v) {
if(substr($v,0,2) == "%u") {
$restr = substr($v, -4);
if (!eregi("WIN", PHP_OS)){
$restr=substr($restr, 2, 2).substr($restr, 0, 2);
}
$ar[$k] = iconv("UCS-2", $this->encode, pack("H4", $restr));
} elseif (substr($v, 0, 3) == "&#x") {
$ar[$k] = iconv("UCS-2", $this->encode, pack("H4",substr($v,3,-1)));
} elseif(substr($v, 0, 2) == "&#") {
$ar[$k] = iconv("UCS-2", $this->encode, pack("n",substr($v,2,-1)));
}
}
return join('',$ar);
}
/* 编码 js escape() */
function escape($str)
{
$sublen=strlen($str);
$reString="";
for ($i=0;$i<$sublen;$i++){
if(ord($str[$i])>=127){
$tmpString=bin2hex(iconv($this->encode,"ucs-2",substr($str,$i,2))); //此处GBK为目标代码的编码格式,请实际情况修改
if (!eregi("WIN",PHP_OS)){
$tmpString=substr($tmpString,2,2).substr($tmpString,0,2);
}
$reString.="%u".$tmpString;
$i++;
} else {
$reString.="%".dechex(ord($str[$i]));
}
}
return $reString;
}
- php 实现 js escape unescape
- 用php实现js中escape和unescape
- PHP实现JavaScript的escape和unescape
- php实现escape和Unescape方法
- js escape unescape
- PHP实现Javascript的escape(),unescape()的方法
- PHP实现类似JAVASCRIPT中的escape()和unescape()编码.
- php实现Javascript的escape和unescape函数
- PHP实现javascript的escape和unescape函数
- 如何使用PHP实现javascript的escape和unescape函数
- C#实现JS脚本的escape()和unescape()
- C#实现JS脚本的escape()和unescape()
- Java式实现JS的Escape以及Unescape
- php中escape和unescape
- php中escape和unescape
- php中escape和unescape
- JS escape()加密 解密unescape
- PHP javascript的escape和unescape函数
- 3ds Max里的sub-object的selection , scale ,rotate,move
- Java内存管理概述
- gcc的安装与配置
- test1
- CSS中背景background-position负值定位深入理解
- php 实现 js escape unescape
- 《Java面向对象编程》学习笔记17--对象的序列化和反序列化
- X-Ways Forensics 快速入门
- 浅谈GCC预编译头技术
- 一个涉及比较多的正则表达式, 希望可以帮助大家对正则有更多了解.
- eclipse 代码折叠插件Code Folding
- Smashing Adobe's Heap Memory Management Systems for Profit.
- 中断
- 3.7.4 判断某数能否被3、7、5同时整除。