Shell脚本中的编码问题

即将完成

我有以下代码:

#!/bin/bash
task=$1
xml=$(curl -sL "http://login:[email protected]/issues/$task.xml")
id=$(xmllint --xpath '//issue/id/text()' --format - <<<"$xml")
name=$(xmllint --xpath '//issue/subject/text()' --encode utf8 - <<<"$xml")

echo "task #$id - $name"

但是,当我运行它时,我得到的编码西里尔文字如下:

task #10014 - &#x41B;&#x438;&#x447;&#x43D;&#x44B;&#x439; &#x43D;&#x43E;&#x43C;&#x435;&#x440; &#x43A;&#x43B;&#x438;&#x435;&#x43D;&#x442;&#x430;

请帮助修复它。我不想将此文字编码

斯蒂芬·查泽拉斯(Stephane Chazelas)

在与进行了几分钟的搏斗之后xmllint,我通常会放弃并最终使用xmlstarlet代替,它通常更倾向于按照您的期望去做。这里:

xmlstarlet sel -t -v '//issue/subject' <<< "$xml"

(或<rant>完全放弃XML并使用更合理的格式</ rant>)。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章