如何更改shell脚本字符编码?

我正在使用Gina Trapiani的优秀todo.sh来整理我的todo-list。

不过作为一个丹麦人,如果脚本接受了ø和æ这样的特殊丹麦语字符,那将是非常好的。

我是绝对的UNIX-n00b,所以如果有人能告诉我如何解决这个问题,这将是一个很大的帮助! 🙂

这个命令显示了什么?

 locale 

它应该为你显示这样的东西:

 LC_CTYPE="da_DK.UTF-8" LC_NUMERIC="da_DK.UTF-8" LC_TIME="da_DK.UTF-8" LC_COLLATE="da_DK.UTF-8" LC_MONETARY="da_DK.UTF-8" LC_MESSAGES="da_DK.UTF-8" LC_PAPER="da_DK.UTF-8" LC_NAME="da_DK.UTF-8" LC_ADDRESS="da_DK.UTF-8" LC_TELEPHONE="da_DK.UTF-8" LC_MEASUREMENT="da_DK.UTF-8" LC_IDENTIFICATION="da_DK.UTF-8" LC_ALL= 

如果没有,您可能会在运行脚本之前尝试执行此操作:

 LANG=da_DK.UTF-8 

当您运行脚本并遇到这些字符时,您不会说出发生了什么。 他们是在todo文件? 他们是否在提示输入? 是否有错误讯息? 产出是否取代预期产出?

试试这个,看看你得到了什么:

 read -p "Enter some characters" string echo "$string" 

慢慢地,Unix世界正在从ASCII和其他区域编码转向UTF-8。 你需要运行一个UTF终端,比如一个现代的xterm或putty。

在你的〜/ .bash_profile中,将你的语言设置为UTF-8变体之一。

 export LANG=C.UTF-8 or export LANG=en_AU.UTF-8 etc.. 

然后您应该能够在终端中编写UTF-8字符,并将其包含在bash脚本中。

 #!/bin/bash echo "UTF-8 is græat ☺" 

另见: https : //serverfault.com/questions/11015/utf-8-and-shell-scripts