今天登陆一台好久没有登陆的服务器执行一条 SQL,发现输入中文所有变成乱码了。html
服务器的版本是 Ubuntu 16.04,以前借给朋友装过 Confluence 之类的软件测试,不知道是否是跟这个问题有关。ubuntu
无论,先执行如下命令:服务器
export LANG='zh_CN.UTF-8' export LC_ALL='zh_CN.UTF-8'
执行后仍是不行。网上搜了搜,找到这篇文章:解决ubunut系统locale: Cannot set LC_CTYPE to default locale: No such file or directory,看起来不错,最终确实解决了个人问题。测试
mkdir -p /var/lib/locales/supported.d/ cp /usr/share/i18n/SUPPORTED /var/lib/locales/supported.d/local cd /var/lib/locales/supported.d/ cat local |grep "en_US.UTF-8 UTF-8" > 1.txt cat local |grep "zh_CN.UTF-8 UTF-8" >> 1.txt rm -rf local && mv 1.txt local locale-gen --purge locale
这时候应该就行了,不过仍是要先检查一下 locale
命令的输出。
若是执行发现 LC_ALL
的值仍是有问题(我这里为空),则执行:.net
export LC_ALL=zh_CN.UTF-8
至此,问题解决。code
这样的方式实际上是让系统的语言变成中文。而以前默认是英文的,且中文也没有乱码,更优的方案须要进一步研究。htm
原文地址: CroWall Notesblog