'┏〓〓〓〓〓〓〓〓〓 UtoStr,start 〓〓〓〓〓〓〓〓〓┓ '[简介]: 'Unicode字符转换为普通字符 Function UtoStr(Ustr As String) As String '帮你写函数,帮你写代码,帮你写模块,帮你设计软件 '--需要什么函数或功能,可以联系我。 '版权所有,请保留作者信息. '如需商业用途请联系作者QQ:1085992075 Dim SArr() As String SArr = Split(Ustr, "\u") Dim I As Long Dim DST As String DST = SArr(I) For I = 1 To UBound(SArr) If Len(SArr(I)) = 4 Then DST = DST & ChrW(val("&H" & SArr(I))) ElseIf Len(SArr(I)) > 4 Then DST = DST & ChrW(val("&H" & Left(SArr(I), 4))) & Mid(SArr(I), 5) Else DST = DST & SArr(I) End If Next UToStr = DST 'Dim gb2312() As Byte 'gb2312 = StrConv(DST, vbFromUnicode) End Function '┗〓〓〓〓〓〓〓〓〓 UtoStr,end 〓〓〓〓〓〓〓〓〓┛
'┏〓〓〓〓〓〓〓〓〓 UtoStr,start 〓〓〓〓〓〓〓〓〓┓
'[简介]:
'Unicode字符转换为普通字符
Function UtoStr(Ustr As String) As String
'帮你写函数,帮你写代码,帮你写模块,帮你设计软件
'--需要什么函数或功能,可以联系我。
'版权所有,请保留作者信息.
'如需商业用途请联系作者QQ:1085992075
Dim SArr() As String
SArr = Split(Ustr, "\u")
Dim I As Long
Dim DST As String
DST = SArr(I)
For I = 1 To UBound(SArr)
If Len(SArr(I)) = 4 Then
DST = DST & ChrW(val("&H" & SArr(I)))
ElseIf Len(SArr(I)) > 4 Then
DST = DST & ChrW(val("&H" & Left(SArr(I), 4))) & Mid(SArr(I), 5)
Else
DST = DST & SArr(I)
End If
Next
UToStr = DST
'Dim gb2312() As Byte
'gb2312 = StrConv(DST, vbFromUnicode)
End Function
'┗〓〓〓〓〓〓〓〓〓 UtoStr,end 〓〓〓〓〓〓〓〓〓┛
作者:小文 发布于:2010-8-28 12:53 Saturday 分类
Escape是js 脚本的一种加密字符串的方式.具体详情可以参见http://www.w3school.com.cn/js/jsref_unescape.asp 有的网站会将中文字进行Escape编码,然后在显示时用unescape再进行转换.比如有这么一段代码<title>广州公交查询-由%u91D1%u6CFD%u5927%u53A6到%u767E%u5F81%u79D1%u6280%u5927%u53A6的乘车路线</title>这个是经过Escape编码的.我们需要在PHP中将其解密.在网上搜索后,得到加密和解密代码.<?phpfunction 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")
$ar[$k] = iconv("UCS-2","GBK",pack("H4",substr($v,-4)));
elseif(substr($v,0,3) == "&#x")
$ar[$k] = iconv("UCS-2","GBK",pack("H4",substr($v,3,-1)));
elseif(substr($v,0,2) == "&#") {
$ar[$k] = iconv("UCS-2","GBK",pack("n",substr($v,2,-1)));
}
}
return join("",$ar);
}function phpescape($str){//这个是加密用的
preg_match_all("/[\x80-\xff].|[\x01-\x7f]+/",$str,$newstr);
$ar = $newstr[0];
foreach($ar as $k=>$v){
if(ord($ar[$k])>=127){
$tmpString=bin2hex(iconv("GBK","ucs-2",$v));
if (!eregi("WIN",PHP_OS)){
$tmpString = substr($tmpString,2,2).substr($tmpString,0,2);
}
$reString.="%u".$tmpString;
} else {
$reString.= rawurlencode($v);
}
}
return $reString;
}?>我们测试一下echo unescape("由%u91D1%u6CFD%u5927%u53A6到%u767E%u5F81%u79D1%u6280%u5927%u53A6的乘车路线");可以得到 由金泽大厦到百征科技大厦的乘车路线