换成Utf8编码

本文介绍了一种将中文字符转换为UTF8编码的方法。通过一系列自定义函数,包括字符编码转换、十六进制到UTF8编码的转换等,实现了中文字符串到UTF8编码的有效转换。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

function EncodeUtf8(s1)

{

var s = escape(s1);

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

var retV ="";

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)));

}

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 value;

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 "";

}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值