我正在使用Gina Trapiani's excellent todo.sh来整理我的待办事项列表。
然而,作为一个丹麦人,如果剧本接受像ø和æ这样的特殊丹麦人物,那就太好了。
我是一个绝对的UNIX-n00b,所以如果有人能告诉我如何解决这个问题,那将是一个很好的帮助! :)
答案 0 :(得分:15)
慢慢地,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
答案 1 :(得分:15)
此命令显示了什么?
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"