2012-12-13 16 views
2

有一个包含十六进制字符串(一个UTF8字符串的内容)我如何将包含字符串UTF8十六进制代码转换为JavaScript字符串

"666f6f6c 6973686e 6573732c 20697420 77617320 74686520 65706f63 68206f66 2062656c 6965662c 20697420 77617320 74686520 65706f63 68206f66 20696e63 72656475 6c697479 2c206974 20776173 20746865 20736561 736f6e20 6f66204c 69676874 2c206974 20776173 20746865 2073656" 

我需要将其转换回JavaScript字符串的字符串。怎么做 ?

+1

http://www.string-functions.com/hex-string.aspx? –

+0

我必须说,这可能是非常棘手的JavaScript。你想用JavaScript来做还是只做一次? – xiaoyi

+0

那么,如果'十六进制'真的意味着'每一对hexsymbols编码一个单一的字符'(显然是这种特殊的字符串),它实际上很容易。 – raina77ow

回答

9
var s = "666f6f6c 6973686e 6573732c 20697420 77617320 74686520 65706f63 68206f66 2062656c 6965662c 20697420 77617320 74686520 65706f63 68206f66 20696e63 72656475 6c697479 2c206974 20776173 20746865 20736561 736f6e20 6f66204c 69676874 2c206974 20776173 20746865 2073656"; 
var r = decodeURIComponent(s.replace(/\s+/g, '').replace(/[0-9a-f]{2}/g, '%$&')); 

该解决方案实际上处理UTF-8。

+0

它将处理原始编码为2个或更多字节的情况吗? – CodeWeed

+0

是的,这就是“UTF-8”的意思。 – melpomene

+0

谢谢...我很感激。 – CodeWeed

相关问题