我有一个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方面做一些不同的事情?感谢任何人都能提供的帮助。
答案 0 :(得分:2)
您在XML或HTML中的u265c
Unicode字符将表示为:♜
。
请参阅here。
您还可以编写转换函数:
working example
<!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>
答案 1 :(得分:1)
约定\u265c
对XML或任何XML处理软件没有任何意义。 (本机XML表示形式为♜
)。
如果您有一个文档,由于某种原因,作者决定将该字符表示为\u265c
而不是♜
,那么您将必须找到某种解码方式在应用程序级别。在XPath 2.0中,编写一个将十六进制转换为十进制的简单函数并不难,然后您可以使用codepoints-to-string()
函数将十进制数字转换为Unicode字符。