小编lmz*_*lmz的帖子

在 UTF-8 的语言环境中使用的正确编码名称是什么?

只是想知道我在这个 CentOS 7 系统上的情况:

$ locale -a 
<snip>
en_US.utf8
<snip>
Run Code Online (Sandbox Code Playgroud)

但是:

$ localectl 
System Locale: LANG=en_US.UTF-8
Run Code Online (Sandbox Code Playgroud)

除此之外,根据 X11 (/usr/share/X11/locale/locale.dir) 的首选名称是:

$ grep 'en_US.UTF-8$' /usr/share/X11/locale/locale.dir 
en_US.UTF-8/XLC_LOCALE                  en_US.UTF-8
en_US.UTF-8/XLC_LOCALE:                 en_US.UTF-8
Run Code Online (Sandbox Code Playgroud)

幸运的是 en_US.utf8 有一个别名:

$ grep 'en_US.utf8' /usr/share/X11/locale/locale.alias
en_US.utf8                                      en_US.UTF-8
en_US.utf8:                                     en_US.UTF-8
Run Code Online (Sandbox Code Playgroud)

其他一些就没有那么幸运了,例如 ru_UA.utf8:

$ locale -a | grep ru_UA.utf8
ru_UA.utf8
$ grep 'ru_UA.utf8' /usr/share/X11/locale/locale.alias
$ grep 'ru_UA.UTF-8' /usr/share/X11/locale/locale.dir
en_US.UTF-8/XLC_LOCALE                  ru_UA.UTF-8
en_US.UTF-8/XLC_LOCALE:                 ru_UA.UTF-8
Run Code Online (Sandbox Code Playgroud)

如果所选语言环境不在 X11 locale.alias 中,这有点烦人的原因是 GDM(或 gnome-session?)强制使用“utf8”版本,用如下消息破坏 X 程序:“警告:语言环境不是Xlib 支持,语言环境设置为 C”。我可以只编辑 /usr/share/X11/locale/locale.alias,但是如果能获得更多关于哪个版本真正正确的信息会很好。

centos x11 gdm locale

9
推荐指数
1
解决办法
1947
查看次数

标签 统计

centos ×1

gdm ×1

locale ×1

x11 ×1