Может ли профиль терминала Gnome использовать UTF-8 по умолчанию?


19

Я нахожусь в системе Ubuntu (я думаю). У меня нет root, поэтому я не могу изменить локаль. Я хочу, чтобы мой профиль терминала по умолчанию использовал UTF-8 по умолчанию. Должен быть способ сделать это, либо .gconf/apps/gnome-terminal/где-то в каталоге, либо в переменной окружения, либо во что-то еще. Тем не менее, я не могу найти это.

Изменить с более подробной информацией:

В терминале у меня есть:

grid-unv55$ locale
LANG=en_US.UTF-8
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=
grid-unv55$ gnome-terminal

Когда я пытаюсь добавить документ UTF в этот новый терминал, я получаю:

\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd
\noise:bgspeech \ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd

Который появляется на моем экране в виде точек. (в итоге были вырезаны и вставлены. Я оставил там "\ noise: bgspeech", чтобы вы могли видеть, что ascii правильно вырезал и вставил)

Ответы:


12

Я полагаю, что gnome-терминал будет просто работать с UTF-8 в оболочке, поэтому все, что вам нужно сделать, это включить это . Положил

export LANG=en_US.UTF-8

в ~/.bashrcи там вы идете.


РЕДАКТИРОВАТЬ:

Итак, ответ в настоящее время вы не можете установить это . Gnome Terminal следует настройке LANG текущей среды и использует для нее кодировку по умолчанию. Поэтому вам нужно, чтобы LANG содержал UTF-8 до запуска gnome-терминала. Установка этого ~/.bashrcдолжна сделать это - вам просто нужно выйти и войти снова.

(Обратите внимание, что на самом деле лучше это вставить, ~/.bash_profileчтобы вы могли переопределить его для подоболочек, но я не уверен, что bash обязательно запускается как оболочка входа в систему при настройке среды Gnome. Это стоит проверить…)


1
не похоже на работу.
Брайан Постоу

Хм. Что $ LANG установлено по умолчанию? Помещает ли это что-то в ваш bashrc?
Mattdm

С, и положить его в bashrc заставил это измениться. Конечно, я не выходил из системы и снова входил в систему, но я запустил новый терминал, и он начал с UTF в LANG (и локаль также установлена ​​с UTF), но терминал все еще не показывает японский ...
Брайан Постоу

1
Раньше он только устанавливался в оболочке внутри gnome-терминала. Теперь он устанавливается в среде, в которой работает сам gnome-терминал.
Mattdm

2
В Ubuntu 10.04 вы можете устанавливать переменные окружения для всего сеанса из ~/.profile- не~/.bashrc , и не из чего ~/.bash_profileугодно .
Жиль "ТАК ... перестать быть злым"

9

Вы можете установить локаль для gnome-terminalследующей команды где Defaultимя профиля.

gconftool --set --type=string /apps/gnome-terminal/profiles/Default/encoding en_US.UTF-8

Это сработало для меня. Но не было необходимости после изменения LANG=en_US.UTF-8в .bashrcи перезагрузки
Антониоса Hadjigeorgalis

Отлично сработало для меня!
Джош М.

7

У меня была похожая проблема, и когда установка LANGв .bash_profileне сработала, я обнаружил, что в Gnome локаль по умолчанию может быть установлена ​​в начале сеанса с экрана входа в GDM. Это можно сделать без root-доступа.


3

Я только что проверил menu->terminal->set character encodingэто UTF-8

Терминал и bash - это не одно и то же.

Я бы начал с этого cat utf-8-file(cat и bash передадут этот файл без изменений в терминал, (на самом деле в stty, stty преобразует перевод новой строки в возврат каретки, перевод новой строки и т. Д.)), Если при этом файл будет отображаться правильно, то gnome-терминал настроен. (Это все, что я когда-либо делал, так как я использую utf-8 на английском языке; он уже был установлен в Ubuntu 10.10 и Debian 6 для меня). Тогда просто настроить bash и т. Д.

Перечитывание ~ / .bashrc

Если вы редактируете, ~/.bashrcвы должны перечитать его . ~/.bashrc(или запустить новую оболочку) (не забывайте точку)


1
Когда я вручную изменяю кодировку символов на utf-8, это то, где я делаю это, но когда я запускаю новый терминал gnome, даже с терминала, который имеет правильную локаль, кодировка все еще ascii. Я добавлю больше деталей к вопросу.
Брайан Постоу

3

У меня была проблема, только что исправленная, которая может быть актуальна для новичков с более новыми версиями GNOME (и gnome-терминал):

Для любой кодировки текста, которую вы хотите использовать, оболочка (например, bash) и эмулятор терминала (например, gnome-терминал) должны использовать одну и ту же кодировку. Так, например, если оболочка использует, en_US.utf8а эмулятор терминала использует en_US.ISO-8859-1(aka latin1), то вы увидите странный текст в вашем терминале для любой программы с выводом UTF-8.

Теперь я не могу установить кодировку при входе в систему, как я видел, было бы возможно. Это может быть связано с тем, что у нас здесь работает более старая версия GDM. Вот почему мне нужно другое решение.

В любом случае, GNOME 3, похоже, не получает автоматически .bashrcни .profileпри входе в систему Но это источник .gnomerc, в который вы можете поместить переменные окружения, которые будут экспортированы в программы GNOME (насколько я могу судить).

Ввод export LANG="en_US.utf8"в .gnomercтаким образом , начинает гном-терминал , использующий кодировку UTF-8 по умолчанию, когда запускается новый экземпляр. (Измените ваш язык в соответствии с вашими потребностями.)

Надеюсь, это было полезно для кого-то!


-1

Как уже упоминали другие пользователи, сообщите оболочке, какую кодировку вы используете

export LANG=en_US.UTF-8

Поместите это в .bashrc, и gnome-терминал должен поднять его при следующем входе в систему.

Установите кодировку для gnome-терминала на лету: Menubar> Terminal> Установить кодировку символов

Установить постоянную кодировку по умолчанию: gconf-editor> Приложения> gnome-терминал> Профили> По умолчанию> кодировка> utf-8


2
Это не совсем так. Для меня у меня есть файлы .profile и .bashrc. Мой логин оболочки bash. gnome-терминал игнорирует настройки LANG в .bashrc, если он конфликтует с настройками LANG в .profile. Итак, LANG должен быть установлен в обоих файлах.
Гари

Вроде… я понимаю, что bash использует .profile для входа в систему, а .bashrc в противном случае. В Linux новые командные окна используют .bashrc (в Mac это .profile ). Мне неизвестно о каких-либо обстоятельствах, когда оба будут запускаться автоматически, но очень часто все ваши настройки объединяются в один, а затем вызываются из другого. Как правило, .bashrc запускается из .profile (обычно только из интерактивных оболочек). if [ -n "$BASH_VERSION" -a -f "$HOME/.bashrc"; then . "$HOME/.bashrc"; fi
Эдвард Фальк,
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.