我有一个 WebSocket,可以从不同的服务将文本字符串传递到我的页面。其中一些字符串包含奇怪的字符。
有时我会收到如下字符串:
“东西%91引用的东西%92东西”
和类似的。我发现这个特定的服务向我发送了 windows-1252(或 CP1252)字符集的字符串。
使用 javascript,将所有字符串转换为 UTF-8 或仅转换十六进制字符,哪种方法是最好(也是最快)的方法?
最佳答案
看起来你有percent encoded Windows-1252字符。
如果您创建从 Windows-1252 代码到 Unicode 字符的映射,则可以使用 replace
替换它们。
var win1252toUnicode = {
...
91:"‘",
92:"’",
...
};
var encoded = "stuff stuff %91quoted stuff%92 stuff";
var decoded = encoded.replace(/%([0-9abcdef]{2})/ig, function(match, code) {
return win1252toUnicode[code];
})
这样你就可以得到:
"stuff stuff ‘quoted stuff’ stuff"
关于javascript - 在字符串中查找十六进制(windows1252)字符串并将其转换 - Javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32974057/