我有一个XML属性,其中包含一个Unicode字符,我需要将其读入JavaScript并采取行动,我很难理解转义的工作原理。我的 XML 文件可能包含:
<item foo="u265c" />
我使用 XMLHttpRequest 带来了 XML 文件,但我得到以下结果:
x = itemObject.getAttribute('foo') // x = "\u265c"
y = decodeURIComponent(x) // y = "\u265c"
我在这里错过了什么?我希望y
是解码的Unicode字符。我可以创建一个函数来捕获和解释\u
字符串并对其进行转换,但我假设有一种更优雅的方式来处理它。
我应该以不同的方式将其存储在XML文件中,还是应该在JavaScript方面做一些不同的事情?感谢任何人都可以提供的任何帮助。
XML或HTML中的u265c
Unicode字符将表示如下:♜
.
看到它在这里工作。
你也可以写一个转换函数:
工作示例
<!DOCTYPE html>
<html>
<head>
<style>
</style>
</head>
<body>
<input type="button" value="convert" onClick="convert('u265c')"/>
<span id="myspan"></span>
<script>
function convert(unchar)
{
var base = '&#x';
var fixed = unchar.replace("u","");
document.getElementById("myspan").innerHTML = base + fixed + ";";
}
</script>
</body>
</html>
u265c
对XML或任何XML处理软件没有任何意义。(本机 XML 表示形式将♜
(。
如果你有一个文档,由于某种原因,作者决定将字符表示为u265c
而不是♜
,那么你将不得不找到某种在应用程序级别对其进行解码的方法。在 XPath 2.0 中,编写一个将十六进制转换为十进制的简单函数并不难,然后您可以使用 codepoints-to-string()
函数将十进制数转换为 Unicode 字符。