gpt4 book ai didi

linux - 解释导出 LANG、LC_CTYPE 和 LC_ALL 的效果

转载 作者:IT老高 更新时间:2023-10-28 12:38:37 29 4
gpt4 key购买 nike

我刚刚安装了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 更改为俄语。如果程序可以将文本更改为大写,那么它将使用俄语规则来执行此操作,即使文本本身可能是英文。

值得一提的是,混合使用 LANGLC_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 - 解释导出 LANG、LC_CTYPE 和 LC_ALL 的效果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30479607/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com