Чи може профіль Gnome Terminal використовувати UTF-8 за замовчуванням?


19

Я в системі Ubuntu (я думаю). У мене немає кореня, тому я не можу змінити локаль. Я хочу, щоб мій профіль терміналу за замовчуванням використовував 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

Який з’являється на моєму екрані у вигляді крапок. (uffds були вирізаними та вставленими. Я залишив там "\ 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 за замовчуванням? Чи змінює це у вашому башерку?
mattdm

C, і помістивши його в 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 входу. Це можна зробити без кореневого доступу.


3

Я щойно перевірив menu->terminal->set character encodingце utf-8

Термінал і баш - це не одне і те ж.

Я б почав з цього процесу cat utf-8-file(кіт і баш передадуть цей файл без змін до терміналу (ну власне до stty, stty перетворить новий рядок у повернення carrage, newline тощо)), якщо цей файл відображатиметься належним чином, тоді встановлюється gnome-terminal. (Це поки що все, що я коли-небудь робив, оскільки я використовую utf-8 англійською мовою; вона вже була створена в Ubuntu 10.10 та Debian 6). Тож тоді просто налаштувати баш і т.д.

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

Якщо ви редагуєте, ~/.bashrcви повинні перечитати його . ~/.bashrc(або запустити нову оболонку) (не забудьте крапку)


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

3

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

Для будь-якого кодування тексту, який ви хочете використовувати, оболонка (наприклад, bash) і емулятор терміналу (наприклад, gnome-terminal) повинні використовувати одне і те ж кодування. Так, наприклад, якщо оболонка використовує en_US.utf8і емулятор терміналу використовує en_US.ISO-8859-1(ака 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> Set Encoding Character

Постійно встановіть кодування за замовчуванням: gconf-editor> Apps> gnome-terminal> Profiles> Default> encoding> utf-8


2
Це не зовсім так. Для мене є .profile та .bashrc файл. Моя оболонка для входу є bash. gnome-terminal ігнорує налаштування 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.