我使用的是 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 正确剪切和粘贴)
答案1
我相信 gnome-terminal 将在 shell 中启用“Just Work with UTF-8”,因此您需要做的就是启用那。放
export LANG=en_US.UTF-8
进去~/.bashrc
就可以了。
编辑:
好吧,那么,答案是目前你无法设置这个。 Gnome 终端遵循当前环境的 LANG 设置并使用该编码作为默认值。所以你需要让 LANG 包含 UTF-8前gnome 终端已启动。设置此项~/.bashrc
就可以了——您只需要注销并再次登录即可。
(请注意,实际上最好将其放入,~/.bash_profile
以便您可以为子 shell 覆盖它,但我不确定 bash 是否一定作为设置 Gnome 环境的一部分作为登录 shell 运行。这值得测试......)
答案2
gnome-terminal
您可以使用以下命令设置区域设置,其中Default
是配置文件的名称。
gconftool --set --type=string /apps/gnome-terminal/profiles/Default/encoding en_US.UTF-8
答案3
我遇到了类似的问题,当设置LANG
没有.bash_profile
成功时,我发现在 Gnome 中,可以在会话开始时从 GDM 登录屏幕设置默认区域设置。这可以在没有 root 访问权限的情况下完成。
答案4
我刚刚修复了一个问题,该问题可能与使用较新版本的 GNOME(和 gnome-terminal)的新手相关:
对于您想要使用的任何文本编码,shell(例如bash)和终端仿真器(例如gnome-terminal)必须使用相同的编码。因此,例如,如果 shell 使用en_US.utf8
并且终端仿真器使用en_US.ISO-8859-1
(又名latin1
),那么您将在终端中看到任何具有 UTF-8 输出的程序的奇怪文本。
现在,我无法在登录时设置编码,正如我所看到的那样,这是可能的。这可能是因为我们使用的是旧版本的 GDM。这就是为什么我需要不同的解决方案。
不管怎样,GNOME 3 似乎不会自动获取资源,.bashrc
也不会.profile
在登录时自动获取。但它确实有 source .gnomerc
,您可以在其中放置将导出到 GNOME 程序的环境变量(据我所知)。
export LANG="en_US.utf8"
因此,当启动.gnomerc
新实例时,默认使用 UTF-8 编码启动 gnome-terminal 。(根据您的需要更改您的区域设置。)
希望这对某人有用!