Подтвердить что ты не робот

Как изменить кодировку символов сценариев оболочки?

Я использую Gina Trapiani отлично todo.sh, чтобы организовать мой список дел.

Однако, будучи дочерью, было бы неплохо, если бы script приняли специальные датские символы, такие как & oslash; и &.

Я абсолютный UNIX-n00b, так что это будет отличная помощь, если кто-нибудь скажет мне, как это исправить!:)

4b9b3361

Ответ 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