Как изменить кодировку символов сценариев оболочки?
Я использую Gina Trapiani отлично todo.sh, чтобы организовать мой список дел.
Однако, будучи дочерью, было бы неплохо, если бы script приняли специальные датские символы, такие как & oslash; и &.
Я абсолютный UNIX-n00b, так что это будет отличная помощь, если кто-нибудь скажет мне, как это исправить!:)
Ответы
Ответ 1
Что показывает эта команда?
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=
Если нет, попробуйте сделать это, прежде чем запускать script:
LANG=da_DK.UTF-8
Вы не говорите, что происходит, когда вы запускаете script, и он встречает эти символы. Являются ли они в файле todo? Они вводятся в командной строке? Есть ли сообщение об ошибке? Выходит ли что-то вместо ожидаемого выхода?
Попробуйте это и посмотрите, что вы получите:
read -p "Enter some characters" string
echo "$string"
Ответ 2
Медленно, мир Unix переходит из ASCII и других региональных кодировок в UTF-8. Вам нужно запустить терминал UTF, например, современный xterm или шпатлевку.
В вашем ~/.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/info/11015/utf-8-and-shell-scripts