(1)
网上有人用form利用accept-charset设置成gbk
来submit,target设为新加的一个iframe
action设为服务器端某个静态的html内容为:
<script>
parent._urlEncode_iframe_callback && parent._urlEncode_iframe_callback(loca
tion.search.split('=')[1]);
</script>
但这种方法需要在服务器端放一个html 如果这样我还不如
放一个php 在php里搞定gbk编码返回就是了
因为我是写chrome插件 所以暂时不想用到任何服务器端开发
(2)
网上找到一个是定义了一个编码数组的:
var gbData = [];
setGbData();
alert(URLEncodeOld("我"));
function setGbData(){
gbData = [ // 一个中文常量数组,内容太长贴小部分
'啊阿埃...................'];
}
function URLEncodeOld(vStr) {
var vGet = new String();
for (var i = 0; i < vStr.length; i ++) {
var tmp = vStr.charAt(i);
var reg = /^[\u4e00-\u9fa5\uf900-\ufa2d]$/;
if (reg.test(tmp)) {
for (var area = 0; area < gbData.length; area ++) {
var place = gbData[area].indexOf(tmp) + 1;
if (place) {
area += 16;
vGet += '%' + getUCase((0xA0 + area).toString(16))
;
vGet += '%' + getUCase((0xA0 + place).toString(16)
);
break;
}
}
} else {
var vPos ='~!@#$%^&*()-_+={}[]|\\:;"\'<>,.?/`'.indexOf(tmp)
;
vGet += vPos != -1 ? '%' + getUCase(tmp.charCodeAt(0).toStr
ing(16)) : tmp;
}
}
return vGet.replace(/\s/g, '+');
function getUCase(v) { return v.toUpperCase(); }
}
【 在 Orpherus (奥路菲) 的大作中提到: 】
: 扣一个utf-8 to gbk的编码转换库出来
--
FROM 211.99.222.*