我有一个将字符串转换为十六进制的函数:
function encode(str){
str = encodeURIComponent(str).split('%').join('');
return str.toLowerCase();
}
示例:
守护村子
alert(encode('守护村子'));
输出结果为:
e5ae88e68aa4e69d91e5ad90
它支持中文字符。但是当我用英文字母进行操作时,
alert(encode('Hello World'))
;
输出结果为:
hello20world
我尝试使用以下方法将字符串转换为十六进制:
function String2Hex(tmp) {
var str = '';
for(var i = 0; i < tmp.length; i++) {
str += tmp[i].charCodeAt(0).toString(16);
}
return str;
}
然后我尝试将其应用于上面的中文字符,但它输出了UTF-8 HEX:
5b8862a467515b50
而不是ANSI Hex:
e5ae88e68aa4e69d91e5ad90
我也尝试过将UTF-8转换成ANSI,但没有成功。有人能帮我吗?谢谢!
tmp = unescape(encodeURIComponent(str))
将文本转换为latin1。 - B. Colin Tim