function hex2a(hex)
{
var str = '';
for (var i = 0; i < hex.length; i += 2)
str += String.fromCharCode(parseInt(hex.substr(i, 2), 16));
return str;
}
这个函数在谷歌浏览器中无法工作,但在火狐浏览器中可以正常工作。请问有谁能帮忙。
提前感谢。
function hex2a(hex)
{
var str = '';
for (var i = 0; i < hex.length; i += 2)
str += String.fromCharCode(parseInt(hex.substr(i, 2), 16));
return str;
}
这个函数在谷歌浏览器中无法工作,但在火狐浏览器中可以正常工作。请问有谁能帮忙。
提前感谢。
从您的评论中看来,似乎您正在呼叫
hex2a('000000000000000000000000000000314d464737');
并且警告结果。
你的问题是你正在构建以0x00开头的字符串。这段代码通常用作以空字符结尾的字符串的字符串终止符。
请删除开头的00
:
hex2a('314d464737');
你可以像这样修改函数,跳过那些空的“字符”:
function hex2a(hex) {
var str = '';
for (var i = 0; i < hex.length; i += 2) {
var v = parseInt(hex.substr(i, 2), 16);
if (v) str += String.fromCharCode(v);
}
return str;
}
请注意,充满0x00的字符串可能仍然可以在其他情境中使用,但Chrome无法警示。您不应该使用这种类型的字符串。