您尚未登录。

#1 2012-11-06 18:18:28

Earthson
会员
注册时间: 2012-11-06
帖子: 3

关于Terminal的UTF-8支持。Locale设置。

前天刚装的Arch,这个Locale设置把我整疯了要~~

首先说下我的需求:英文界面,支持UTF-8显示。

首先按照wiki:https://wiki.archlinux.org/index.php/Systemd#Locale

localectl set-locale LANG="en_US.UTF-8"

tty登入之后看了locale是没问题的。都是en_US.UTF-8。但是登入gnome之后,开启gnome-terminal就发现不对了,全是C。中文各种问号。

在网上搜了之后,按照网上的说法(stackoverflow)我也在.baserc设置了LANG。relogin之后诡异了。locale没问题,开启的terminal中文还是乱码,神奇的是用这个terminal开启别的terminal(比如xfce的),中文就对了。坑爹的。

[earthson@Earthson ~]$ 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=en_US.UTF-8

这是什么问题呢?求帮助~

离线

#2 2012-11-06 18:28:29

Earthson
会员
注册时间: 2012-11-06
帖子: 3

Re: 关于Terminal的UTF-8支持。Locale设置。

囧,似乎生效太晚了。我在/etc/environment设置后重启就成功了。囧~

离线

#3 2012-11-06 18:41:29

Earthson
会员
注册时间: 2012-11-06
帖子: 3

Re: 关于Terminal的UTF-8支持。Locale设置。

大家都是在哪儿设置的啊?鄙人新入Arch,还请多指教啊。这种基础设置,应该有惯用策略吧。

貌似
localectl set-locale会把locale设置放入/etc/locale.conf。但不知道为什么没有全局生效?明明tty下都正常的,gnome桌面下的terminal就不行了。

离线

#4 2012-11-06 21:59:16

cuihao
所在地: USTC, Hefei
注册时间: 2011-08-19
帖子: 1,223
个人网站

Re: 关于Terminal的UTF-8支持。Locale设置。

表示我压根儿没创建过 locale.conf,/etc/environment也是空的……
改用户的配置文件就行了,bashrc啦,xinitrc啦……


Site: CVHC.CC   Twitter: @cuihaoleo   Org: LUG@USTC
AD:  ~欢迎参与志愿计算~

离线

#5 2012-11-06 22:29:42

reverland
root
注册时间: 2012-02-04
帖子: 356
个人网站

Re: 关于Terminal的UTF-8支持。Locale设置。

什么login shell非loginshell什么什么的吗?我看新的wiki是在locale.conf


>>>>>>>>>jekyll博客>>>>>>>>>>
<<<<<<<<<更残念的vimwiki<<<<<<<<<
本人vim控,偏偏喜欢lisp

离线

#6 2012-11-06 23:49:23

依云
会员
所在地: a.k.a. 百合仙子
注册时间: 2011-08-21
帖子: 8,953
个人网站

Re: 关于Terminal的UTF-8支持。Locale设置。

我在 /etc/locale.conf 里设置英文的 locale,在自己的 ~/.xinitrc 里设置中文的 locale。

离线

#7 2012-11-07 11:15:12

jouyouyun
会员
注册时间: 2011-10-10
帖子: 268

Re: 关于Terminal的UTF-8支持。Locale设置。

同 ls
.bashrc: 每次终端登录时读取并运用里面的设置。
.xinitrc: 每次startx启动X界面时读取并运用里面的设置
.xprofile: 每次使用gdm等图形登录时读取并运用里面的设置
根据自己的选择,在这些文件里设置中文的 locale

离线

#8 2012-11-12 02:29:11

Dan
会员
注册时间: 2012-11-12
帖子: 1

Re: 关于Terminal的UTF-8支持。Locale设置。

The issue is most likely  from gnome 3.
The default value of "user account in system setting" is "Unspecified [ANSI_Xerox.4-1968]".

Changing the value to a proper language option solved the issue.

user account


Earthson 说:

前天刚装的Arch,这个Locale设置把我整疯了要~~

首先说下我的需求:英文界面,支持UTF-8显示。

首先按照wiki:https://wiki.archlinux.org/index.php/Systemd#Locale

localectl set-locale LANG="en_US.UTF-8"

tty登入之后看了locale是没问题的。都是en_US.UTF-8。但是登入gnome之后,开启gnome-terminal就发现不对了,全是C。中文各种问号。

在网上搜了之后,按照网上的说法(stackoverflow)我也在.baserc设置了LANG。relogin之后诡异了。locale没问题,开启的terminal中文还是乱码,神奇的是用这个terminal开启别的terminal(比如xfce的),中文就对了。坑爹的。

[earthson@Earthson ~]$ 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=en_US.UTF-8

这是什么问题呢?求帮助~

离线

#9 2014-03-10 00:03:45

花瓣奶牛
会员
注册时间: 2014-03-07
帖子: 33

Re: 关于Terminal的UTF-8支持。Locale设置。

Dan 说:

The issue is most likely  from gnome 3.
The default value of "user account in system setting" is "Unspecified [ANSI_Xerox.4-1968]".

Changing the value to a proper language option solved the issue.

http://i.imgur.com/gOmB4.png


Earthson 说:

前天刚装的Arch,这个Locale设置把我整疯了要~~

首先说下我的需求:英文界面,支持UTF-8显示。

首先按照wiki:https://wiki.archlinux.org/index.php/Systemd#Locale

localectl set-locale LANG="en_US.UTF-8"

tty登入之后看了locale是没问题的。都是en_US.UTF-8。但是登入gnome之后,开启gnome-terminal就发现不对了,全是C。中文各种问号。

在网上搜了之后,按照网上的说法(stackoverflow)我也在.baserc设置了LANG。relogin之后诡异了。locale没问题,开启的terminal中文还是乱码,神奇的是用这个terminal开启别的terminal(比如xfce的),中文就对了。坑爹的。

[earthson@Earthson ~]$ 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=en_US.UTF-8

这是什么问题呢?求帮助~

i do as what you said,and i solve this problem successlly,
and if i don't want to use graphical tool (The User Acconts) to solve the probel,what are some other way to solve this problem?

离线

#10 2014-03-10 00:50:19

花瓣奶牛
会员
注册时间: 2014-03-07
帖子: 33

Re: 关于Terminal的UTF-8支持。Locale设置。

我知道问题所在了 其实,这是使用gdm作为启动器,并且没有用图形工具设置“区域和语言”或则是在 上面8楼所说的那个程序修改语言才导致的问题,解决方法很简单,只要用刚刚提到的图形工具修改就行了,也可以通过修改文本来解决
/var/lib/AccountsService/users  这个是文本的地址,一般来说只要有一个名为gdm的文件,应该还有另外一个文件,名字就是你的用户名,我试过,修改gdm这个文件并不能解决问题,要修改你用户名字的那个文件
sudo 打开他,以设置为英语为例,Language=en_US.utf8
记住,不是en_US.UTF-8 也不是en_US.UTF8 要看清楚,你不懂的话,用图形工具修改再打开这个文件看看就懂了..............
https://wiki.archlinux.org/index.php/Gd … e_language
上面那个地址是官方wiki的说明。请看英语的,中文的没有这个说明

Change the language

To change the GDM language, edit the file /var/lib/AccountsService/users/gdm and change the language line using the correct UTF-8 value for your language. You should see something similar to the text below:

/var/lib/AccountsService/users/gdm

User]
Language=fr_FR.UTF-8
XSession=
SystemAccount=true

Now just reboot your computer.

Once you have rebooted, if you look at the /var/lib/AccountsService/users/gdm file again, you will see that the language line is cleared — do not worry, the language change has been preserved.

离线

#11 2014-03-12 17:11:43

veda
会员
注册时间: 2014-03-07
帖子: 16

Re: 关于Terminal的UTF-8支持。Locale设置。

我之前搞了很久编码和输入法的问题,我也是想弄个英文界面,但是支持中文显示和输入的.
看了这篇文章后我去试了下,突然就弄好了,我之前的情况是默认所有都是英文,并没有做修改,只是设置输入法环境变量,这样差不多是能用的,不过在emacs上不能使用中文输入法,问题是LC_CTYPE的值en_US.utf8而不是zh_CN.utf8.
即使是通过.xprofile来export LC_CTYPE=zh_CN.utf8也不行,这样查看locale的时候会显示no such file or directory.
刚刚突然就开窍了,我发现我的locale.gen只是反注释了en_US.utf8而没有反注释zh_CN.utf8,于是即使去export LC_CTYPE=zh_CN.utf8也是不行的.
现在已经弄好.希望给后来者有帮助.

离线

页脚