我有我的函数的字符串转换为十六进制:使用Javascript - 编码字符串为十六进制
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十六进制:
5b8862a467515b50
不是ANSI十六进制:
e5ae88e68aa4e69d91e5ad90
我还搜查转换UFT8到ANSI,但没有运气。 任何人都可以帮助我?谢谢!
检查出这个【答案】(http://stackoverflow.com/questions/21647928/javascript- Unicode的字符串到十六进制)。我想这可能是你要找的。 – nlloyd
谢谢,但它不是答案,它类似于上面的'String2Hex'函数,它给出utf8十六进制代码,而不是ansi十六进制代码。不过谢谢。 –
尝试使用'tmp = unescape(encodeURIComponent(str))'将文本转换为latin1' –