无法使用XPath解析XML中的商标符号

时间:2017-11-30 12:06:26

标签: java xpath special-characters

我试图用Java解析XML文件,有些行包含HTML符号& #153;不过,当我做的时候

((String) myXPath.evaluate(node, STRING));

我得到方形符号而不是™。我的机器是Linux,XML编码是UTF-8。我无法理解如何正确编码这个确切的符号。 &安培; #8482;编码完美......

我以下列方式创建一个Document实例:

File xmlFile = new File(path);
FileInputStream fileIS = new FileInputStream(xmlFile);
xmlDocument = builder.parse(fileIS);

1 个答案:

答案 0 :(得分:1)

HTML实体& #153表示具有Unicode代码点153的字符,这是一些不可打印的控制字符。它不是商标符号。 153可能是某些Microsoft Windows字符集中的商标符号,但这在网络上无关紧要。您需要使用Unicode代码点8482 - https://en.wikipedia.org/wiki/Trademark_symbol

请注意,HTML实体引用中使用的数字与文件编码无关。事实上,这就是使用它们的全部意义 - 它们在编码的变化中存活下来。