admin 管理员组

文章数量: 887021


2023年12月17日发(作者:linux显示所有文件和子目录)

js中把中文字符转换成Utf8编码

最近在做个pyhthon应用,有一个逻辑是需要在前台通过JS把一串字符串通过get方式提交到后台,提交英文和数字都正常,但是提交中文时出现了问题,因为在python的服务器端接收的是utf-8编码,所以需要在前台进行转码,以下是网上找来一段相对还不错的UTF-8 JS转码函数

//--------把中文字符转换成Utf8编码------------------------//

function EncodeUtf8(s1)

{

var s = escape(s1);

var sa = ("%");

var retV ="";

if(sa[0] != "")

{

retV = sa[0];

}

ngth; i ++)

{

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

{

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

}

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

}

return retV;

}

function Str2Hex(s)

{

var c = "";

var n;

var ss = "ABCDEF";

var digS = "";

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

{

c = (i);

n = f(c);

digS += Dec2Dig(eval(n));

}

//return value;

return digS;

}

function Dec2Dig(n1)

{

var s = "";

var n2 = 0;

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

{

n2 = (2,3 - i);

if(n1 >= n2)

{

s += '1';

n1 = n1 - n2;

}

else

s += '0';

}

return s;

}

function Dig2Dec(s)

{

var retV = 0;

if( == 4)

{

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

{

retV += eval((i)) * (2, 3 - i);

}

return retV;

}

return -1;

}

function Hex2Utf8(s)

{

var retS = "";

var tempS = "";

var ss = "";

if( == 16)

{

tempS = "1110" + ing(0, 4);

tempS += "10" + ing(4, 10);

tempS += "10" + ing(10,16);

var sss = "ABCDEF";

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

{

retS += "%";

ss = ing(i * 8, (eval(i)+1)*8);

retS += (Dig2Dec(ing(0,4)));

retS += (Dig2Dec(ing(4,8)));

}

return retS;

}

return "";

}


本文标签: 提交 需要 显示 前台