perl: warning: Setting locale failed

来源:互联网 发布:吴师自通 知乎 编辑:程序博客网 时间:2024/05/21 11:11

运行某些perl 编写的脚本时 报如下错误:


Theory

Locale is set of language/user input/keyboard characters specific to regions. For instance, "en_US" represents US english character set. It has to be set to correct value (en_US.UTF-8 or anything else, there are lots for different regions)for server to understand the character sequence keyboard input provides. "setlocale" enables the user to set the locale.

To read more on the theory of Locales, please divert here. 

export LANGUAGE=en_US.UTF-8export LANG=en_US.UTF-8export LC_ALL=en_US.UTF-8locale-gen en_US.UTF-8dpkg-reconfigure locales

What eventually worked for me

These two commands: 

执行下面这两行命令:

sudo locale-gen en_US.UTF-8sudo dpkg-reconfigure locales

The error "bash: warning: setlocale: LC_ALL: cannot change locale (en_US)" occurs when the remote server does not understand the locale "en_US.UTF-8". The fix is to generate the locale using the command "sudo locale-gen en_US.UTF-8" and update the locale repository to store this locale, such that future connections(ssh) can understand this locale. The command "sudo dpkg-reconfigure locales" updates the local repository with the newly generated locale, i.e en_US.UTF-8.

在出现的界面选项中选择  en_US.UTF-8 (按空格选择和取消选择),enter回车,在默认选项中同样选择en_US.UTF-8,完成之后就没问题了。

0 0
原创粉丝点击