+-
linux – 解释export LANG,LC_CTYPE,LC_ALL的效果
我刚刚安装了 Linux Mint 17并遇到了一个问题,我无法在终端中使用俄语. (我看到了?而不是字母).在一个论坛上我发现了这个解决方案

Added in ~/.profile:

export LANG=ru_RU.UTF-8
export LC_CTYPE=ru_RU.UTF-8
export LC_ALL=ru_RU.UTF-8

它有所帮助,但也将我的界面语言改为俄语(我不想要).这甚至不是问题,但无论如何,我想知道,这段代码是如何工作的(每一行).

谢谢.

最佳答案
我将详细解释:

export LANG=ru_RU.UTF-8

这是一个shell命令,它将导出一个名为LANG的环境变量,其值为给定值ru_RU.UTF-8.这指示国际化程序使用俄语(ru),俄罗斯(RU)变体和控制台输出的UTF-8编码.

通常这条单线足够了.

另一个:

export LC_CTYPE=ru_RU.UTF-8

有类似的事情,但它告诉程序不要改变语言,但只有CTYPE到俄语.如果程序可以将文本更改为大写,那么它将使用俄语规则来执行此操作,即使文本本身可能是英语.

值得一提的是,混合使用LANG和LC_CTYPE会产生意想不到的结果,因为很少有人这样做,所以它是非常未经测试的,除非:

export LANG=ru_RU.UTF-8
export LC_CTYPE=C

这将使程序输出俄语,但CTYPE标准旧C风格.

最后一行,LC_ALL是最后一个覆盖,它将使程序忽略所有其他LC_ *变量并使用它.我认为你不应该在配置文件中写它,而是用它来运行给定语言的程序.例如,如果您想编写错误报告,并且不想要任何类型的本地化输出,并且您不知道设置了哪些LC_ *变量:

LC_ALL=C program

关于更改所有程序的语言或仅更改控制台,这取决于您放置这些行的位置.我把它放在〜/ .bashrc中,所以它们不适用于GUI,只适用于bash控制台.

点击查看更多相关文章

转载注明原文:linux – 解释export LANG,LC_CTYPE,LC_ALL的效果 - 乐贴网