Теперь я меняю кодировку символов gnome-terminal на "GBK" (по умолчанию это UTF-8), но как я могу получить значение (кодирование символов) в моем Linux?
Как получить терминальное кодирование символов
Ответ 1
Терминал использует переменные среды, чтобы определить, какой набор символов использовать, поэтому вы можете определить его, посмотрев на эти переменные:
echo $LC_CTYPE
или же
echo $LANG
Ответ 2
locale
команда без аргументов будет печатать значения всех соответствующих переменных среды, кроме LANGUAGE.
Для текущей кодировки:
locale charmap
Для доступных мест:
locale -a
Для доступных кодировок:
locale -m
Ответ 3
Проверьте кодировку и язык:
$ echo $LC_CTYPE
ISO-8859-1
$ echo $LANG
pt_BR
Получить все языки:
$ locale -a
Изменить на pt_PT.utf8:
$ export LC_ALL=pt_PT.utf8
$ export LANG="$LC_ALL"
Ответ 4
Если у вас есть Python:
python -c "import sys; print(sys.stdout.encoding)"
Ответ 5
Насколько мне известно, нет.
Обстоятельные показания от $LC_CTYPE
, locale
, и такие могут показаться заманчивыми, но они полностью отделены от кодирования терминального приложения (на самом деле эмулятора), которое используется при отображении символов на экране.
Единственный способ обнаружить кодировку - это вывести что-то, присутствующее только в кодировке, например. ä
, сделайте снимок экрана, проанализируйте это изображение и проверьте правильность выходного символа.
Нет, это невозможно, к сожалению.