在bash脚本中从HTML字符引用更改为utf-8,即ā 成为ā;
如何将包含以下字符引用的文档转换为bash脚本中的实际可读字符在bash脚本中从HTML字符引用更改为utf-8,即ā 成为ā;,bash,utf-8,character-encoding,Bash,Utf 8,Character Encoding,如何将包含以下字符引用的文档转换为bash脚本中的实际可读字符 ā á ǎ à ē é ě è ī í ǐ ì ǖ ǘ ǚ ǜ ü ǖ ǘ ǚ
ā á ǎ à ē é ě è ī í ǐ ì ǖ ǘ ǚ ǜ ü ǖ ǘ ǚ ǜ ü
这些更改是为了āáǎēěīǐ़በǚǜǜǚǜ如果您可以访问Perl,那么它相对简单:
perl -ne 'binmode STDOUT,":utf8";s/&#([0-9]*);/pack("U",$1)/eg;print' \
document.html
例如:
#!/bin/bash
html2utf8() {
perl -ne 'binmode STDOUT, ":utf8"; s/&#([0-9]*);/pack("U",$1)/eg; print'
}
echo 'testing 1 ā 2 Ĭ 3 ē' | html2utf8
产生:
testing 1 ā 2 Ĭ 3 ē
如果您正在寻找一种只有bash的方法来实现这一点,那么这个线程中似乎有一些解决方案:stackoverflow允许HTML实体。我的第一个反应是使用sed,如果它只是那些实体。这样就可以直接更换。但是,如果你想让它对任意实体起作用,那么我不能马上想到任何事情(遗憾的是,我不是一个主要的sh人)。是的,我已经访问了perl,所以这可能是最简单、最整洁的方法。老实说,无论如何,整个项目最好在珍珠城完成