【问题标题】:Unicode character do not return the correct resultsUnicode 字符不返回正确的结果
【发布时间】:2021-09-25 18:44:23
【问题描述】:

此命令按预期工作并返回 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/

【问题讨论】:

  • 您没有说明您使用什么软件进行 XPath 评估。也许更重要的是,您没有说明您正在使用什么外壳,或者它是如何配置的。命令行工具通常不太擅长 Unicode。
  • # 使用 ubuntu # 安装使用 apt install libxml-xpath-perl # /bin/bash # AWS ec2 instance t4g.small
  • 那么这可能是Perl模块XML::XPath的一个bug。似乎命令行参数没有从 UTF-8 正确解码。运行PERL5OPT=-CA xpath -e ... 可能会起作用。
  • 是的。这是正确的@nwellnhof 你能把它作为答案发布吗?

标签: xpath unicode unicode-string unicode-literals


【解决方案1】:

这是 xpath 实用程序所属的 Perl 模块 XML::XPath 中的 probably a bug。似乎命令行参数没有从 UTF-8 正确解码。它可能会运行

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

【讨论】:

    猜你喜欢
    • 2021-10-09
    • 1970-01-01
    • 2012-04-11
    • 2016-02-06
    • 2017-05-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多