设置'LC_ALL=C.UTF-8'和'LANG=C.UTF-8'的后果`

设置'LC_ALL=C.UTF-8'和'LANG=C.UTF-8'的后果`,utf-8,environment,Utf 8,Environment,为了修复将Python应用程序打包为快照的问题,我准备添加以下代码: # I don't know what I am doing export LC_ALL=C.UTF-8 export LANG=C.UTF-8 有一个似乎可以解释aLC\u ALL=C做了什么(但不是LC\u ALL=C.UTF-8或LANG=C.UTF-8),还有一个解释了bug和Python行为。但是没有一个适合我的小脑袋。通常,我喜欢把我的头绕在血淋淋的技术细节上,但最近有一次 我只想知道短语的含义是什么,这个系统支

为了修复将Python应用程序打包为快照的问题,我准备添加以下代码:

# I don't know what I am doing
export LC_ALL=C.UTF-8
export LANG=C.UTF-8
有一个似乎可以解释a
LC\u ALL=C
做了什么(但不是
LC\u ALL=C.UTF-8
LANG=C.UTF-8
),还有一个解释了bug和Python行为。但是没有一个适合我的小脑袋。通常,我喜欢把我的头绕在血淋淋的技术细节上,但最近有一次


我只想知道短语
的含义是什么,这个系统支持C.UTF-8语言环境
,如果我设置这些变量切换到它,会发生什么?(我猜这是通过设置这些环境变量来实现的)

在Python3中,
sys.std*
的编码是在运行时通过一些涉及环境变量的启发式设置的,比如
LC\u ALL
。如果我正确理解了您的案例,您可以通过检查
locale.getPreferredEncode()
的值来检查这是否有效。它应该类似于“UTF-8”。注意:您应该检查您的语言环境是否支持C-UTF8。现在它已经过时了,在许多系统中C是UTF8。在某些系统上,区域设置为“UTF8”,在某些系统上为“UTF-8”(python支持这两种语法,但不支持区域设置实用程序。
locale-a
显示您安装的本地语言。UTF-8区域设置将破坏许多非UTF-8文本的实用程序(因此序列无效)