将字符串转换成gb2312或者utf-8编码的参数(js版)_Javascript教程-查字典教程网
将字符串转换成gb2312或者utf-8编码的参数(js版)
将字符串转换成gb2312或者utf-8编码的参数(js版)
发布时间:2016-12-30 来源:查字典编辑
摘要:在很多时候,我们直接在url中传递中文参数时,读到的中文都是乱码,那么我们应该怎么将这些参数转换呢?下面我们来介绍一下方法1、我们新建一个U...

在很多时候,我们直接在url中传递中文参数时,读到的中文都是乱码,那么我们应该怎么将这些参数转换呢?

下面我们来介绍一下方法

1、我们新建一个 UrlEncode.js 然后将下面的代码拷贝进去

复制代码 代码如下:

//JS版的Server.UrlEncode编码函数

String.prototype.UrlEncodeGB2312 = function () {

var str = this;

str = str.replace(/./g, function (sHex) {

window.EnCodeStr = "";

window.sHex = sHex;

window.execScript('window.EnCodeStr=Hex(Asc(window.sHex))', "vbscript");

return window.EnCodeStr.replace(/../g, "%{blogcontent}amp;");

});

return str;

}

String.prototype.UrlEncode = function () {

var s = escape(this);

var sa = s.split("%");

var retV = "", retE = "";

if (sa[0] != "") {

retV = sa[0];

}

for (var i = 1; i < sa.length; i++) {

if (sa[i].substring(0, 1) == "u") {

retV += Hex2Utf8(Str2Hex(sa[i].substring(1, 5)));

if (sa[i].length > 4)

retV += sa[i].substring(5);

}

else retV += "%" + sa[i];

}

return retV;

}

function Str2Hex(s) {

var c = "";

var n;

var ss = "0123456789ABCDEF";

var digS = "";

for (var i = 0; i < s.length; i++) {

c = s.charAt(i);

n = ss.indexOf(c);

digS += Dec2Dig(eval(n));

}

return digS;

}

function Dec2Dig(n1) {

var s = "";

var n2 = 0;

for (var i = 0; i < 4; i++) {

n2 = Math.pow(2, 3 – i);

if (n1 >= n2) {

s += '1';

n1 = n1 – n2;

}

else

s += '0';

}

return s;

}

function Dig2Dec(s) {

var retV = 0;

if (s.length == 4) {

for (var i = 0; i < 4; i++) {

retV += eval(s.charAt(i)) * Math.pow(2, 3 – i);

}

return retV;

}

return -1;

}

function Hex2Utf8(s) {

var retS = "";

var tempS = "";

var ss = "";

if (s.length == 16) {

tempS = "1110" + s.substring(0, 4);

tempS += "10" + s.substring(4, 10);

tempS += "10" + s.substring(10, 16);

var sss = "0123456789ABCDEF";

for (var i = 0; i < 3; i++) {

retS += "%";

ss = tempS.substring(i * 8, (eval(i) + 1) * 8);

retS += sss.charAt(Dig2Dec(ss.substring(0, 4)));

retS += sss.charAt(Dig2Dec(ss.substring(4, 8)));

}

return retS;

}

return "";

}

2、使用方法,当然就是我们的((字符串.UrlEncode() )就可以将字符串转换为utf-8编码的url参数((字符串.UrlEncodeGB2312() )就可把字符串转换成gb2312编码的参数,很好吧,O(∩_∩)O哈哈~

相关阅读
推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
  • 大家都在看
  • 小编推荐
  • 猜你喜欢
  • 最新Javascript教程学习
    热门Javascript教程学习
    编程开发子分类