lusir's blog
大道至简
页面
友情链接
正在加载一言...
关于locale问题 warning: setlocale: LC_CTYPE: cannot change locale (UTF-8): No such file or directory
作者: admin    时间: 2021-12-20    分类: linux
这篇文章上次修改于 1041 天前,可能其部分内容已经发生变化,如有疑问可询问作者。
在Debian服务器上运行sh脚本,出现错误
/bin/bash: warning: setlocale: LC_ALL: cannot change locale (en_US.utf8)
在远程服务器上输入 locale
locale: Cannot set LC_CTYPE to default locale: No such file or directory
locale: Cannot set LC_MESSAGES to default locale: No such file or directory
locale: Cannot set LC_ALL to default locale: No such file or directory
LANG=zh_CN.UTF-8
LANGUAGE=
LC_CTYPE="en_US.utf8"
LC_NUMERIC="en_US.utf8"
LC_TIME="en_US.utf8"
LC_COLLATE="en_US.utf8"
LC_MONETARY="en_US.utf8"
LC_MESSAGES="en_US.utf8"
LC_PAPER="en_US.utf8"
LC_NAME="en_US.utf8"
LC_ADDRESS="en_US.utf8"
LC_TELEPHONE="en_US.utf8"
LC_MEASUREMENT="en_US.utf8"
LC_IDENTIFICATION="en_US.utf8"
LC_ALL=en_US.utf8
考虑可能是本机上UTF-8的字符集Linux上没有对应的? 真正原因,本地机locale正确发送的情况下,远程服务器没有正确的locale 这样的情况下要采用如下操作: 1、登录到服务器,输入
locale -a
可生成的 Locale 保存在 /etc/locale.gen 中,用以下的格式来定义: [language][_TERRITORY][.CODESET][@modifier]. 要开启某个Locale,反注释对应的行即可。
2、查看有没有 en_US.UTF-8,如果没有则执行第3步。
3、编辑 /etc/locale.gen文件,反注释 en_US.UTF-8 UTF-8 一行。
4、执行生成命令
locale-gen
5、断开ssh,然后重新连接即可,之前不能正确显示的中文字符就可以显示了 如果locale-gen没有安装则安装该包
apt-get install -y locales locales-all
如果觉得我的文章对你有用,请随意赞赏

支付宝

微信支付

添加新评论