2012-04-24 64 views
0

我经常需要在我的计算机上编写简单的BASH脚本来处理文件。 BASH似乎很难处理UTF-8内容。BASH有没有UTF-8替代品?

  • 有什么版本的BASH完全兼容UTF-8吗?
  • 是否有BASH的替代品,它使用类似或相同的语法,但是与UTF-8兼容?
+3

也许如果你对自己遇到的问题更加具体,有人可能会给你一个明智的答案。 – 2012-04-24 04:48:33

+0

虽然任意[二进制数据可能很麻烦](http://mywiki.wooledge.org/BashFAQ/058),但Bash对UTF-8(以及任何其他编码编码)都可以正常工作。你可能想查看一下[locale documentation](http://mywiki.wooledge.org/locale)。 – l0b0 2012-04-24 10:45:58

回答

1

我把你的问题是通常的sed/awk/grep等不支持unicode,所以stackoverflow的解决方案通常不适合你?

bash本身非常有限,没有外部程序。

要做你想做的事情,你可能不得不使用bash以外的更多功能的编程语言。 UTF-8本身并不是非常适合处理,你需要将它解析为2字节或4字节字符,然后处理字符。 (即转换为UTF-16或UTF-32),然后将其转换回UTF-8进行存储。

3

Bash本身不应该有使用UTF8的任何问题。您的问题很可能是由其他程序引起的,例如终端仿真器或编辑器。确保您的环境设置为使用UTF8。有关更多信息,请参阅here