解决方法
问题是什么?
OS X未正确设置区域设置环境.此外,OS X以不同于Linux的语言环境的组合语法调用UTF-8字符集.
怎么解决?
您可以在Google上找到许多“修复程序”,其中大多数实际上不起作用或只是问题的一部分,因为它们是针对创建相同或类似错误的其他问题.
我认为最合理的方法是在OS X客户端上修复本地环境.
如果在OS X客户端上运行locale命令,则会显示不完整的环境.语言未设置.
osx-client:~$locale LANG= << EMPTY! LC_COLLATE="C" LC_CTYPE="UTF-8" LC_MESSAGES="C" LC_MONETARY="C" LC_NUMERIC="C" LC_TIME="C" LC_ALL= << EMPTY!
因此,在本地计算机上的〜/ .bash_profile文件中,只需添加即可
export LANG="en_US" export LANGUAGE=$LANG export LC_ALL=$LANG
您当然可以用您想要的语言替换en_US,只需确保在服务器上安装它的语言环境(例如在Debian上使用dpkg-reconfigure语言环境).不要忘记关闭并重新打开终端.
但是,请勿使用.UTF变体.它们只能在服务器上或本地工作. OS X和您的Linux服务器在组合的language.charset语法中具有不同的UTF-8名称.如果您使用例如en_US.utf8,它将在本地导致错误,而它在远程工作“正常”,而使用en_US.utf-8将在本地工作,但会导致服务器上的错误.只需使用简单的语言定义即可.无论如何,字符集最终应该是UTF-8.
您可以通过在服务器上再次运行区域设置来测试它是否有效,如果您在顶部看到可怕的消息,则它不起作用.如果你在本地搞砸了,你会在打开一个新的终端窗口时看到错误.
缺少服务器上的区域设置
如果它仍然无法正常工作,您可能会在服务器上缺少所选的区域设置.你可以用“en_US”来解决问题,但可能需要另外一个.如何安装区域设置取决于您的服务器分发.
>在Debian上,调用dpkg-reconfigure locales然后选择您的语言环境.
>如果要求您选择默认语言,则可以选择一种语言,或将其保留为无.这没关系.