Unicode 字符不返回正确结果

问题描述

此命令按预期工作并返回 1 个节点。

# cat myfile.txt
<Feed>
<entry>
<author>
<name>Amar joshi</name>
</author>
</entry>
</Feed>

# xpath -e "/Feed/entry[author/name='Amar joshi']" myfile.txt
Found 1 nodes in myfile.txt:

但这不是。

<Feed>
<entry>
<author>
<name>संतोष गोरे</name>
</author>
</entry>
</Feed>

xpath -e "/Feed/entry[author/name='संतोष गोरे']"  myfile.txt

文件和命令非常相似。 unicode 文本应该没有问题。 我已经使用我在此处找到的实用程序对其进行了检查...

http://xpather.com/

解决方法

这是 Perl 模块 probably a bug 中的 XML::XPathxpath 实用程序是其中的一部分。似乎命令行参数没有从 UTF-8 正确解码。运行可能会起作用

PERL5OPT=-CA xpath -e "/feed/entry[author/name='संतोष गोरे']"  myfile.txt