Cấu hình Gnome Terminal có thể sử dụng UTF-8 theo mặc định không?


19

Tôi đang sử dụng hệ thống Ubuntu (tôi nghĩ). Tôi không có root, vì vậy tôi không thể thay đổi ngôn ngữ. Tôi muốn làm cho cấu hình thiết bị đầu cuối mặc định của mình sử dụng UTF-8 theo mặc định. Cần có một cách để làm điều này, hoặc trong .gconf/apps/gnome-terminal/thư mục ở đâu đó, hoặc trong một biến môi trường, hoặc một cái gì đó. Tuy nhiên, tôi dường như không thể tìm thấy nó.

Chỉnh sửa với nhiều chi tiết hơn:

Trong một thiết bị đầu cuối, tôi có:

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

Khi thử thêm tài liệu UTF trong thiết bị đầu cuối mới đó, tôi nhận được:

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

Mà xuất hiện trên màn hình của tôi dưới dạng dấu chấm. (các uffds là một vết cắt và dán. Tôi để lại "\ noise: bsspeech" trong đó để bạn có thể thấy ascii được cắt và dán chính xác)

Câu trả lời:


12

Tôi tin rằng gnome-terminal sẽ chỉ hoạt động với UTF-8 được bật trong trình bao, vì vậy tất cả những gì bạn cần làm là kích hoạt điều đó . Đặt

export LANG=en_US.UTF-8

trong ~/.bashrcvà có bạn đi


CHỈNH SỬA:

Được rồi, vì vậy, câu trả lời hiện tại bạn không thể đặt ra . Gnome Terminal tuân theo cài đặt LANG của môi trường hiện tại và sử dụng mã hóa làm mặc định. Vì vậy, bạn cần phải có LANG để chứa UTF-8 trước khi gnome-terminal được khởi chạy. Thiết lập điều này ~/.bashrcsẽ làm điều đó - bạn sẽ chỉ cần đăng xuất và đăng nhập lại.

(Lưu ý rằng nó thực sự tốt hơn để đặt điều này trong ~/.bash_profile, do đó bạn có thể ghi đè lên nó cho subshells, nhưng tôi không chắc chắn rằng bash được thiết chạy như một vỏ đăng nhập như một phần của thiết lập môi trường Gnome. Đó là giá trị thử nghiệm ....)


1
không xuất hiện để làm việc.
Brian Postow

Hừm. $ LANG được đặt thành mặc định là gì? Việc đặt nó trong bashrc của bạn có làm cho nó thay đổi không?
mattdm

C, và đặt nó vào bashrc làm cho nó thay đổi. Cấp, tôi đã không đăng xuất và đăng nhập lại, nhưng tôi đã bắt đầu một thiết bị đầu cuối mới và nó bắt đầu với UTF trong LANG (và ngôn ngữ được đặt bằng UTF) nhưng thiết bị đầu cuối vẫn không hiển thị tiếng Nhật ...
Brian Postow

1
Trước đây, nó chỉ được đặt trong vỏ bên trong gnome-terminal. Bây giờ, nó được thiết lập trong môi trường mà chính gnome-terminal chạy.
mattdm

2
Dưới Ubuntu 10.04, bạn có thể thiết lập các biến môi trường cho toàn bộ phiên từ ~/.profile- không~/.bashrc , và không ~/.bash_profilemột trong hai .
Gilles 'SO- ngừng trở thành ác quỷ'

9

Bạn có thể đặt ngôn ngữ cho gnome-terminallệnh sau đây Defaultlà tên của hồ sơ.

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

Điều này làm việc cho tôi. Nhưng là không cần thiết sau khi thay đổi LANG=en_US.UTF-8trong .bashrcvà khởi động lại
Antonios Hadjigeorgalis

Làm việc tuyệt vời cho tôi!
Josh M.

7

Tôi đã có một vấn đề tương tự, và khi thiết LANGtrong .bash_profilekhông làm như lừa, tôi phát hiện ra rằng trong Gnome, miền địa phương mặc định có thể được thiết lập vào đầu một phiên làm việc từ màn hình GDM đăng nhập. Điều này có thể được thực hiện mà không cần truy cập root.


3

Tôi vừa kiểm tra menu->terminal->set character encodingnó là utf-8

Thiết bị đầu cuối và bash không giống nhau.

Tôi sẽ bắt đầu bằng cách thực hiện cat utf-8-file(cat và bash sẽ chuyển tệp này không thay đổi đến thiết bị đầu cuối, (thực ra là stty, stty sẽ chuyển đổi dòng mới thành carrage return, newline, v.v.)) nếu điều này hiển thị đúng tệp thì gnome-terminal được thiết lập. (Đây là tất cả những gì tôi đã làm, vì tôi sử dụng utf-8 bằng tiếng Anh; nó đã được thiết lập trong Ubuntu 10.10 và Debian 6 cho tôi). Vì vậy, sau đó chỉ để thiết lập bash, vv

Đọc lại ~ / .bashrc

Nếu bạn chỉnh sửa, ~/.bashrcbạn phải đọc lại nó . ~/.bashrc(hoặc bắt đầu một vỏ mới) (đừng quên dấu chấm)


1
Khi tôi thay đổi thủ công mã hóa ký tự thành utf-8, đó là nơi tôi thực hiện, nhưng khi tôi khởi động một thiết bị đầu cuối gnome mới, ngay cả từ một thiết bị đầu cuối có ngôn ngữ chính xác, mã hóa vẫn là ascii. Tôi sẽ thêm chi tiết cho câu hỏi.
Brian Postow

3

Tôi vừa gặp một vấn đề là tôi đã sửa nó có thể phù hợp với người mới đến với các phiên bản mới hơn của Gnome (và gnome-terminal):

Đối với bất kỳ mã hóa văn bản nào bạn muốn sử dụng, trình bao (ví dụ bash) và trình giả lập thiết bị đầu cuối (ví dụ: gnome-terminal) phải sử dụng cùng một mã hóa. Vì vậy, ví dụ nếu shell sử dụng en_US.utf8và trình giả lập thiết bị đầu cuối sử dụng en_US.ISO-8859-1(aka latin1), thì bạn sẽ thấy văn bản lạ trong thiết bị đầu cuối của mình cho bất kỳ chương trình nào có đầu ra UTF-8.

Bây giờ, tôi không thể thiết lập mã hóa khi đăng nhập, vì tôi đã thấy đề xuất là có thể. Điều này có thể là do thực tế là chúng tôi có một phiên bản GDM cũ hơn tại nơi làm việc. Đây là lý do tại sao tôi cần một giải pháp khác.

Dù sao, Gnome 3 dường như không tự động nguồn .bashrccũng như .profilekhi đăng nhập. Nhưng nó có nguồn .gnomerc, trong đó bạn có thể đặt các biến môi trường sẽ được xuất sang các chương trình Gnome (theo như tôi có thể nói).

Do đó, đưa export LANG="en_US.utf8"vào .gnomercthiết bị đầu cuối gnome bằng cách sử dụng mã hóa UTF-8 theo mặc định, khi một phiên bản mới được bắt đầu. (Thay đổi ngôn ngữ của bạn theo nhu cầu của bạn.)

Hy vọng rằng điều này đã hữu ích cho một ai đó!


-1

Như những người dùng khác đã đề cập, hãy nói với trình bao mà bạn đang sử dụng

export LANG=en_US.UTF-8

Đặt điều này trong .bashrc và gnome-terminal nên chọn nó trong lần đăng nhập tiếp theo.

Đặt mã hóa cho gnome-terminal một cách nhanh chóng: Menubar> Terminal> Đặt mã hóa ký tự

Đặt mã hóa mặc định vĩnh viễn: gconf-Editor> Ứng dụng> gnome-terminal> Cấu hình> Mặc định> mã hóa> utf-8


2
Điều này không hoàn toàn đúng. Đối với tôi, tôi có tệp .profile và .bashrc. Shell đăng nhập của tôi là bash. gnome-terminal bỏ qua cài đặt LANG trong .bashrc nếu nó xung đột với cài đặt LANG trong .profile. Vì vậy, LANG cần phải được đặt trong cả hai tệp.
Gary

Theo cách hiểu của tôi thì bash sử dụng .profile cho các shell đăng nhập và .bashrc nếu không. Trên Linux, các cửa sổ lệnh mới sử dụng .bashrc (trên Mac, đó là .profile ). Tôi không biết bất kỳ trường hợp nào cả hai sẽ được chạy tự động, nhưng điều cực kỳ phổ biến là đặt tất cả cấu hình của bạn vào một và sau đó gọi nó từ cái khác. Thông thường, .bashrc được chạy từ .profile (thường chỉ từ các vỏ tương tác). if [ -n "$BASH_VERSION" -a -f "$HOME/.bashrc"; then . "$HOME/.bashrc"; fi
Edward Falk
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.