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

在我的屏幕上显示为点。(uffds是剪切并粘贴的。我在其中留下了“ \ noise:bgspeech”,以便您可以正确地剪切并粘贴ascii)

Answers:


12

我相信gnome-terminal将在外壳中启用“只适用于UTF-8”,因此您需要做的就是启用该功能。放

export LANG=en_US.UTF-8

进去~/.bashrc那里。


编辑:

好的,答案是当前您无法设置this。Gnome Terminal遵循当前环境的LANG设置,并将其编码用作默认设置。因此,启动gnome-terminal 之前,需要让LANG包含UTF-8 。设置它~/.bashrc应该可以—您只需注销然后再次登录。

(请注意,放置它实际上更好,~/.bash_profile因此您可以在子外壳程序中覆盖它,但是我不确定bash是否在设置Gnome环境中一定作为登录外壳程序运行。值得测试。。。)


1
似乎不起作用。
Brian Postow

嗯 $ LANG默认设置为什么?将其放入您的bashrc中会使它改变吗?
mattdm 2011年

C,并将其放在bashrc中进行更改。当然,我没有注销并再次登录,但是我启动了一个新的终端,它以LANG中的UTF开头(语言环境也设置为UTF),但是终端仍然不显示日语...
布莱恩·波斯托

1
以前,它只是 gnome-terminal 内部的shell中设置。现在,它已在运行gnome-terminal的环境中设置。
mattdm 2011年

2
Ubuntu下10.04,则可以从整个会话设置环境变量~/.profile- ~/.bashrc,并没有~/.bash_profile任何
吉尔(Gilles)“所以,别再邪恶了”,

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

对我来说很棒!
Josh M.

7

我有一个类似的问题,并设置时LANG.bash_profile没做的伎俩,我发现在侏儒,默认语言环境可以从GDM登录屏幕会话的开始设置。无需root访问权限即可完成此操作。


3

我刚签到的menu->terminal->set character encoding是utf-8

终端和bash是不同的东西。

我将首先做cat utf-8-file(如果cat和bash将文件正确地传递给终端,(实际上是stty,stty会将换行符转换为卡拉奇返回,换行符等)),如果此文件显示正确,则设置了gnome-terminal。(到目前为止,这是我做过的所有事情,因为我使用utf-8英文;它已经为我在Ubuntu 10.10和Debian 6中设置了)。因此,只需设置bash等。

重新读取〜/ .bashrc

如果您进行编辑~/.bashrc,则必须重新阅读. ~/.bashrc(或开始新的外壳程序)(不要忘记点)


1
当我手动将字符编码更改为utf-8时,就是在这里,但是当我启动一个新的gnome-terminal时,即使是从具有正确语言环境的终端上,编码仍然是ascii。我将向该问题添加更多详细信息。
布莱恩·波斯托

3

我刚刚解决了一个问题,该问题可能与使用较新版本的GNOME(和gnome-terminal)的新手有关:

对于您要使用的任何文本编码,外壳程序(例如bash)和终端仿真器(例如gnome-terminal)必须使用相同的编码。因此,例如,如果外壳程序使用en_US.utf8并且终端仿真器使用en_US.ISO-8859-1(aka latin1),那么对于任何带有UTF-8输出的程序,您都会在终端中看到奇怪的文本。

现在,我无法在登录时设置编码,因为我认为建议这样做是可能的。这可能是由于我们正在使用较旧版本的GDM。这就是为什么我需要其他解决方案的原因。

无论如何,GNOME 3似乎都不会自动提供资源,.bashrc也不会.profile在登录时提供。但是它确实有source .gnomerc,您可以在其中放置将导出到GNOME程序的环境变量(据我所知)。

export LANG="en_US.utf8".gnomerc由此使用UTF-8编码默认,当一个新的实例启动开始侏儒末端。(根据需要更改语言环境。)

希望这对某人有用!


-1

正如其他用户提到的,告诉shell您正在使用哪种编码

export LANG=en_US.UTF-8

将其放在.bashrc中,并且gnome-terminal 应该在下次登录时选择它。

即时设置gnome终端的编码: 菜单栏>终端>设置字符编码

永久设置默认编码:gconf-editor>应用程序> gnome-terminal>配置文件>默认>编码> utf-8


2
这不是真的。对我来说,我有一个.profile和.bashrc文件。我的登录shell是bash。如果gnome-terminal与.profile中的LANG设置冲突,则会忽略.bashrc中的LANG设置。因此,需要在两个文件中都设置LANG。
2014年

……我的理解是bash将.profile用于登录shell,否则使用.bashrc。在Linux上,新的命令窗口使用.bashrc(在Mac上为.profile)。我不知道任何情况下两者都会自动运行,但是将所有配置放入一个然后从另一个调用它是非常普遍的。通常,.bashrc.profile运行(通常仅从交互式shell运行)。if [ -n "$BASH_VERSION" -a -f "$HOME/.bashrc"; then . "$HOME/.bashrc"; fi
爱德华·福克
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.