首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何将LC_CTYPE设置为C?

如何将LC_CTYPE设置为C?
EN

Stack Overflow用户
提问于 2019-04-20 11:25:45
回答 2查看 3.3K关注 0票数 1

我尝试将LC_CTYPELC_COLLATE设置为C,同时将其余的LC_*设置为"en_US.UTF-8"。我在Ubuntu 16.04虚拟机中工作。我当前的环境有:

代码语言:javascript
复制
$ locale
LANG=en_US.UTF-8
LANGUAGE=en_US
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=

代码语言:javascript
复制
$ locale -a
C
C.UTF-8
en_US.utf8
<some other locales>
POSIX

当我跑的时候

代码语言:javascript
复制
$ sudo update-locale LC_CTYPE=C

未设置LC_CTYPE

代码语言:javascript
复制
$ locale
LANG=en_US.UTF-8
LANGUAGE=en_US
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=

我可以看到默认设置已写入文件

代码语言:javascript
复制
$ cat /etc/default/locale
# File generated by update-locale
LC_CTYPE=C

但是,当我source ~/.bashrc或重新启动虚拟机时,它仍然没有显示"C"。这里也没有LC_CYTPE变量(我不明白)。

代码语言:javascript
复制
$ echo $LC_CTYPE
<empty string here>

我遗漏了什么?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-04-30 07:25:26

我是通过执行unset LC_ALL让它工作的。一旦我这样做了,export LC_CTYPE=C就开始工作了。

LC_ALL是一个重写。当它被设置时,它优先于其他LC_*环境变量,并且locale命令遵守这一点。我发现很多页面都声明这个变量在默认情况下通常是不设置的。

票数 1
EN

Stack Overflow用户

发布于 2021-03-20 09:14:40

locale(7)的手册页解释了如何为类别赋值:

如果setlocale(3)的第二个参数是默认区域设置的空字符串"",则使用以下步骤确定它:

代码语言:javascript
复制
   1. If there is a non-null environment variable LC_ALL, the value
      of LC_ALL is used.

   2. If an environment variable with the same name as one of the
      categories above exists and is non-null, its value is used for
      that category.

   3. If there is a non-null environment variable LANG, the value of
      LANG is used.
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55769972

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档