运行某些perl 编写的脚本时 报如下错误:
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-8 export LANG=en_US.UTF-8 export LC_ALL=en_US.UTF-8 locale-gen en_US.UTF-8 dpkg-reconfigure locales
What eventually worked for me
These two commands:
执行下面这两行命令:
sudo locale-gen en_US.UTF-8 sudo 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.