ChatGPT解决这个技术问题 Extra ChatGPT

在 OS X Lion 中,LANG 未设置为 UTF-8,如何解决?

我尝试在 OS X Lion 中设置 postgress,发现没有正确设置 LOCALE 环境变量。

这是设置的:

LANG=
LC_COLLATE="C"
LC_CTYPE="C"
LC_MESSAGES="C"
LC_MONETARY="C"
LC_NUMERIC="C"
LC_TIME="C"
LC_ALL=

我期待 UTF-8 的东西。这是一个干净的 OS X Lion 设置,使用西班牙语。我什么都不动。

我不知道如何将其设置为 UTF-8。

在终端设置中,检查 UTF-8 并将 LOCALE 设置为打开,尽管这不起作用。

这很奇怪。默认情况下,它应该在终端中工作,假设您使用的是默认 shell (bash) 和默认终端设置配置文件 (Basic)。请注意,如果您更改编码或更改“设置区域环境变量”,它们只会在新终端中生效,而不是已经打开的终端。
我使用zsh(使用哦我的zsh!安装程序),也许是这样?
可能。尝试在没有任何自定义配置的情况下运行 zsh 以查看问题是否消失。使用 Shell >运行 zsh --no-rcszsh --no-rcs --no-global-rcs 的新命令 以缩小问题范围。另外,请尝试通过 New Command 仅在没有 shell 的情况下运行 locale 命令并查看它报告的内容。
@ChrisPage 我的输出与 OP 完全相同,这些设置在终端中启用。我必须关闭 set locale environment variables,重新启动终端,然后重新打开它才能显示正确的环境。
Ask Different上有这个问题的完整答案。

s
saurabh

从 OSX Lion 机器登录到运行 Red Hat 的服务器时,我注意到了完全相同的问题。

尝试添加或编辑 ~/.profile 文件,以便在启动新会话时正确导出您的区域设置。

export LC_ALL=en_US.UTF-8  
export LANG=en_US.UTF-8

添加到文件中的这两行应该足以设置语言环境 [将 en_US 替换为您所需的语言环境,并事先检查它是否确实安装在您的系统上 (locale -a)]。

之后,您可以开始一个新会话并使用 locale 检查:

$ locale

以下应该是输出:

LANG="en_US.UTF-8"  
LC_COLLATE="en_US.UTF-8"  
LC_CTYPE="en_US.UTF-8"  
LC_MESSAGES="en_US.UTF-8"  
LC_MONETARY="en_US.UTF-8"  
LC_NUMERIC="en_US.UTF-8"  
LC_TIME="en_US.UTF-8"  
LC_ALL="en_US.UTF-8"  

另外,我最初在使用 iTerm2 时注意到了这个问题。此解决方法似乎适用于 iTerm2 和终端。
花了一个小时寻找这个问题的解决方案非常感谢发布这个人。我可以确认它适用于终端和 iTerm2。
我的主文件夹中有一个 .bash_profile,当 .bash_profile 存在时,没有找到 .profile。我需要在 .bash_profile 中手动获取 .profile
太棒了,它做到了,只是一个说明,一旦你使用 zsh,不要像我一样愚蠢......那里的配置是 ~/.zshrc......现在就像一个魅力
没有理由同时设置 LANGLC_ALL。只应设置 LANG。首先,它们都执行相同的操作 - 为所有语言环境变量(例如 LC_TIMELANGUAGE)设置默认值 - LC_ALL 优先于 LANGLANG 用于标准配置,而 LC_ALL 仅用于调试目的(因为它会覆盖其他所有内容)。 Some reference
F
FredericK

我最近在带有 bash shell 的 OS X Sierra 上遇到了同样的问题,感谢上面的答案,我只需要编辑文件

~/.bash_profile 

并附加这些行

export LC_ALL=en_US.UTF-8
export LANG=en_US.UTF-8

它真的很有帮助。我没有 bash_profile,我手动创建了它。如果没有将 export 设置为 bash_profile,每次我们重置终端时,语言都会回滚。
M
Marcel Kraan

很长一段时间以来,这是一个令人头疼的问题。我现在看到它是 OSX ..我在系统范围内更改它并且它运行完美

当我在 Centos6 中添加这个 LANG 时,Fedora 也是我首选的 LANG。您还可以在终端设置 (OSX) /etc/profile 中“取消选中”导出或设置区域设置

导出 LC_ALL=en_US.UTF-8 导出 LANG=en_US.UTF-8


t
tostao

如果您安装了 zsh,您还可以更新 ~/.zprofile

if [[ -z "$LC_ALL" ]]; then
  export LC_ALL='en_US.UTF-8'
fi

并使用 locale cmd 检查输出,如上所示

❯ locale                                                                                                                                           
LANG="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_CTYPE="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_ALL="en_US.UTF-8"

J
Jayprakash Dubey

我在 MacOS High Sierria 上遇到了这个问题。

https://i.stack.imgur.com/qaOhb.png

您可以使用以下命令将语言环境和语言设置为 UTF-8 格式:

export LC_ALL=en_US.UTF-8
export LANG=en_US.UTF-8

https://i.stack.imgur.com/OqTq8.png

现在为了检查语言环境是否更新,请使用以下命令:

Locale

https://i.stack.imgur.com/Pjtar.png


与接受的答案相比,这个答案有何不同?
第一张图的目的是什么?不是和上一个一样吗?
N
Niklas Rosencrantz
if [[ -z "$LC_ALL" ]]; then
  export LC_ALL='en_US.UTF-8'
fi

然后检查语言环境,输出应该是:

LANG="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_CTYPE="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_ALL="en_US.UTF-8"

关注公众号,不定期副业成功案例分享
关注公众号

不定期副业成功案例分享

领先一步获取最新的外包任务吗?

立即订阅