ubuntu中文编码配置

linux服务器对中文的支持是一个一直让大家DT的问题,从系统语言配置、中文文件名支持到数据库乱码等偶会经常遇到。所以今天把编码中遇到的问题做一个简单的汇总。

1. 系统环境语言

需要修改文件/etc/default/locale,输入命令如下:

sudo vim /etc/default/locale
  • 中文设置如下:
LANG="zh_CN.UTF-8"
LANGUAGE="zh_CN:zh"
  • 英文设置如下
LANG="en_US.UTF-8"
LANGUAGE="en_US:en"

注:重启服务器生效

2. 终端中文显示乱码

需要修改的文件有两处:一个是/etc/environment,另一个是/var/lib/locales/supported.d/local

  • 打开/etc/environment,在末尾添加如下:
LANG="zh_CN.UTF-8"
LANGUAGE="zh_CN:zh:en_US:en"
  • 打开/var/lib/locales/supported.d/local修改为如下:
en_US.UTF-8 UTF-8
zh_CN.UTF-8 UTF-8

注:
1. 需要输入source /etc/environment 使得第一个文件配置生效
2. 输入locale-gen 使得第二个配置生效
3. 原来存在乱码的文件依旧会乱码,重新上传或者新建的中文文件显示正常,无乱码问题

经过该步骤的修改,在系统输入locale显示如下:

LANG=en_US.UTF-8
LANGUAGE=en_US:en
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=

不清楚为啥是en_US还能正常显示中文

3. 数据库乱码:

  • 其中数据库乱码需要设置四个地方
    • 确保所在系统能够支持中文编码显示,即经过了第二步配置
    • 确保Mysql的编码是UTF-8【意思是MYSQL软件编码为UTF-8】
    • 确保所使用的数据库的编码是UTF-8【即database的编码是UTF-8】
    • 确保该数据库中每张表的编码是UTF-8【即table的编码是UTF-8】

说明:
1. 以上环境配置已经在本机测试成功
2. 关于环境配置的具体原理,至今没有了解清楚,希望懂得人给予讲解或者贴出相关链接,谢谢

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值