【发布时间】:2010-07-07 00:20:29
【问题描述】:
我正在编写一个 bash 脚本,该脚本需要解析包含特殊字符(例如 @!'ó)的 html。目前我正在运行整个脚本,它忽略或触发这些查询,因为它们以十进制 unicode 从服务器返回,如下所示:'。我已经想出了如何解析并转换为十六进制并将它们加载到 python 中以将它们转换回它们的符号,我想知道 bash 是否可以本地进行最终转换。 python中的简单示例:
print ur"\u0032" ur"\u0033" ur"\u0040"
打印出来
23@
我可以在 Bash 中获得相同的结果吗?我研究了 iconv,但我认为它不能做我想做的事,或者更可能我只是不知道怎么做。
以下是一些相关信息:
Hex to UTF conversion in Python
这里有一些预期输入输出的例子。
Ludwig van Beethoven - 5th Symphony and 6th Symphony ''Pastoral'' - Boston Symphony Orchestra - Charles Munch
Ludwig van Beethoven - 5th Symphony and 6th Symphony ''Pastoral'' - Boston Symphony Orchestra - Charles Munch
АлисА (Alisa) - Мы вместе. ХХ лет (My vmeste XX let)
АлисА (Alisa) - Мы вместе. ХХ лет (My vmeste XX let)
【问题讨论】:
-
你不能从那个 bash 脚本调用 python 或 perl 来处理字符串?
-
几乎完成了:
echo 'АлисА (Alisa)' | perl -pe 's/&#(\d+);(?{$x=sprintf("%04x", int($1))})/\N{U+$x}/g'不幸的是,$x转换存在一些问题,因此 unicode 字符是错误的