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

Я использую превосходный todo.sh Gina Trapiani для организации моего списка ожидающих выполнения задач.

Однако будучи датчанином, было бы хорошо, если бы сценарий принял специальные датские символы как ø и æ.

Я - абсолютный UNIX-n00b, таким образом, это была бы большая справка, если кто-либо мог бы сказать мне, как зафиксировать это!:)

15
задан timkl 10 January 2010 в 21:36
поделиться

2 ответа

Что показывает эта команда?

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"
16
ответ дан 1 December 2019 в 01:45
поделиться

Медленно, мир 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/questions/11015/utf-8-and-shell-scripts

17
ответ дан 1 December 2019 в 01:45
поделиться
Другие вопросы по тегам:

Похожие вопросы: