日期:2014-05-16 浏览次数:20413 次
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>shawl.qiu template</title>
</head>
<body>
<script type="text/javascript" src="http://www.btbtd.org/test/sqJsTools/tools/Url/Url/CP936.js
"></script>
<script type="text/javascript">
/*<![CDATA[*/
/*
作者:邱少伟
CSND 账号:http://hi.csdn.net/btbtd
作者网站:http://www.btbtd.org/
*/
var pe = "%D6%D0%B9%FA";
document.write("<p/>pe: "+pe);
document.write("<p/>de: "+IDecodeURIGb(pe, [CP936]));
document.write("<hr/>");
function IDecodeURIGb(Source, CP936) // Pe = percent encoding; %xx[,%xx]
{ // shawl.qiu code, return string
------解决方案--------------------
void return; Func: fGetUtfHex
var bStr = false;
if(Source.constructor==String) Source = [Source], bStr = true;
//if(CP936==null) fFatalError("编码映射表不能为空!");
var iLBound = iUBound = 0;
iLBound = -1; iUBound = 0x7f;
Source[0] = Source[0].replace(/\+/g, " ");
var Len = Source[0].length;
for(var i=0; i<Len; i++)
{
var iIndex = Source[0].indexOf("%", i);
if(iIndex===-1) break;
var sHex = Source[0].slice(iIndex+1, iIndex+3);
var iCode = parseInt(sHex, 16);
//document.write("<br/>sHex: "+sHex);
if(iCode>-1&&iCode<=0x7f) // ascii
{
Source[0] =
[
Source[0].slice(0, iIndex)
, String.fromCharCode(iCode)
, Source[0].slice(iIndex+3)
].join("");
}
else
{
var sHexRaw = Source[0].slice(iIndex+3, iIndex+6);
//document.write("<br/>sHexRaw: "+sHexRaw);
if(sHexRaw.charAt(0)!="%") continue;
sHex += sHexRaw.slice(1);
var sUniHex = fGetUtfHex(sHex, CP936);
//document.write("<br/>sHex: "+sHex);
//document.write("<br/>sUniHex: "+sUniHex);
Source[0] =
[
&n