setlocale: LC_CTYPE: 无法更改区域设置(UTF-8)

当我按下Tab键进行自动补全时,出现了这个错误:
-bash: warning: setlocale: LC_CTYPE: cannot change locale (UTF-8)

我尝试运行了这个:
locale-gen en_US en_US.UTF-8
dpkg-reconfigure locales
reboot

但是这并没有帮助。你知道缺了什么吗?
我正在使用Ubuntu 13.04。

1http://askubuntu.com/questions/162391/how-do-i-fix-my-locale-issue?rq=1 - kenn
1UTF-8 作为一个区域名称看起来不正确。 - guntbert
1通过运行以下命令在我的Ubuntu系统上解决了问题: apt-get install language-pack-en-base, update-locale LC_ALL="en_GB.UTF-8", locale-gen(不是GB也不是US)。 - PhoebeB
我的回答涉及到Debian,但是我遇到了这个问题,只需按照Locale - Debian Wiki的指引运行sudo dpkg-reconfigure locales即可解决。 - waffl
dpkg-reconfigure locales 对我来说解决了问题 :) - metakermit
2个回答

通过在我的本地机器(OSX)的~/.bash_profile中添加这些行来修复它。
export LC_ALL=en_US.UTF-8
export LANG=en_US.UTF-8

2实际上,同时设置LANG和LC_ALL没有太多意义。你应该真正查看一下/etc/default/locale来修复系统范围的问题。 - Gunnar Hjalmarsson
1@GunnarHjalmarsson 在服务器上是 LANG=en_US.UTF-8。在OSX上不存在该文件。 - Markus Hedlund
1错过了你远程连接。所以显然你的本地区域设置被导出到服务器上。无论如何,鉴于服务器上使用LANG,设置LANG在~/.bash_profile应该足够。https://help.ubuntu.com/community/EnvironmentVariables#Locale_setting_variables描述了各种区域设置类别。 - Gunnar Hjalmarsson
我在从OS X到Ubuntu的远程会话中遇到了相同的问题(用于自动完成的“tab”上的区域设置警告)。这个答案对我也起作用。 - Carl
这对于Ubuntu机器没有起作用。 - alper

你可能在/etc/default/locale中设置了一些奇怪的选项。"UTF-8"不是一个完整的区域设置名称。