มอเตอร์ไซค์
我可以使用JS将此unicode转换为字符串。 (这是泰国语言)
我用
console.log(String.fromCharCode("มอเตอร์ไซค์"));
这不正确。如果它是正确的,它将显示มอเตอร์ไซค์
答案 0 :(得分:4)
您的Unicode字符串使用HTML实体表示法进行编码。通常,这意味着无论编码字符串是什么,它都会在HTML文档的中间结束,HTML解析器会看到它。
如果您在某个浏览器中以某种方式在JavaScript中获取该字符串,则可以通过让浏览器解析它来获取编码的Unicode:
var str = "มอเตอร์ไซค์";
var elem = document.createElement("div");
elem.innerHTML = str;
alert(elem.textContent);
string.fromCharCode()
函数需要一个或多个 numeric 参数;它不会理解HTML实体。因此,如果您在浏览器中不(例如,如果您在Node.js程序中有字符串或类似内容),您可以使用您自己的代码转换字符串:
var str = "มอเตอร์ไซค์";
var thai = String.fromCharCode.apply(String, str.match(/x[^;]*;/g).map(function(n) { return parseInt(n.slice(1, -1), 16); }));
只有当涉及的代码点在前64K值内时,该转换才有效。
答案 1 :(得分:2)
你可能想要这样的东西:
var input = "มอเตอร์ไซค์";
var output = input.replace(/&#x[0-9A-Fa-f]+;/g,
function(htmlCode) {
var codePoint = parseInt( htmlCode.slice(3, -1), 16 );
return String.fromCharCode( codePoint );
});