加入收藏 | 设为首页 | 会员中心 | 我要投稿 拼字网 - 核心网 (https://www.hexinwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 服务器 > 搭建环境 > Linux > 正文

Linux 修改系统编码

发布时间:2022-11-30 12:51:08 所属栏目:Linux 来源:
导读:  linux服务器的字符集设置可能影响到网站页面出现 “???” 等问号乱码,还有可能导致文件中的汉字部分出现乱码。有两个原因

  服务器没有安装 zh_CN.UTF-8 字符集,导致不支持中文!服务器虽然
  linux服务器的字符集设置可能影响到网站页面出现 “???” 等问号乱码,还有可能导致文件中的汉字部分出现乱码。有两个原因
 
  服务器没有安装 zh_CN.UTF-8 字符集,导致不支持中文!服务器虽然装了 zh_CN.UTF-8 字符集,但是未设置成系统默认的字符集 查看 linux 安装的字符集
 
  运行命令
 
  locale -a
  结果
 
  C
  C.UTF-8
  POSIX
  安装 zh_CN.UTF-8 字符集
 
  # 安装 locales
  apt-get install locales
  # 安装 zh_CN.UTF-8 字符集
  cd /usr/share/locales
  sudo ./install-language-pack zh_CN.UTF-8
  查看当前 Linux 字符集
 
  # 执行这个命令,查看和语言编码有关的环境变量
  locale
  显示如下:
 
  LANG=
  LANGUAGE=en_US:en
  LC_CTYPE="POSIX"
  LC_NUMERIC="POSIX"
  LC_TIME="POSIX"
  LC_COLLATE="POSIX"
  LC_MONETARY="POSIX"
  LC_MESSAGES="POSIX"
  LC_PAPER="POSIX"
  LC_NAME="POSIX"
  LC_ADDRESS="POSIX"
  LC_TELEPHONE="POSIX"
  LC_MEASUREMENT="POSIX"
  LC_IDENTIFICATION="POSIX"
  LC_ALL=
  可以看到大多数都默认为POSIX 类型的,这时可以改服务器的默认字符集为zh_CN.UTF-8(我测试过改了没问题哦,可以解决汉字乱码问题。如果能通过设置SecureCrt等终端可以解决的话,就没必要改了)
 
  除了使用 locale 之外,还可以使用下列命令查看当前的字符集
 
  1、# echo $LANG
  2、# env |grep LANG
  3、# export |grep LANG
  设置当前 Linux 字符集
 
  方法1:
 
  vi /etc/sysconfig/i18n
  # 默认为:
  LANG="en_US.UTF-8"  
  SYSFONT="latarcyrheb-sun16"
  # 修改为:
  LANG="zh_CN.UTF-8"
  SUPPORTED="zh_CN.UTF-8:zh_CN:zh"  
  SYSFONT="latarcyrheb-sun16"
  然后在不重启的情况下重新加载i18n文件
 
  source /etc/sysconfig/i18n
  方法2:
 
  vi /etc/profile
  export LC_ALL="zh_CN.UTF-8"  
  export LANG="zh_CN.UTF-8"
  方法3:可是化修改
 
  dpkg-reconfigure locales  # 此命令会进入界面
  在界面中,选中en_US.UTF-8和zh_CN.UTF-8 (点击空格键 为选中),然后tab键选中,回车键确认;进入最终确认页面,显示选中的编码,tab键选中linux编码,回车键确认。完成。
 
  修改完显示
 
  # 运行loacle
  LANG=zh_CN.UTF-8
  LANGUAGE=en_US:en
  LC_CTYPE="zh_CN.UTF-8"
  LC_NUMERIC="zh_CN.UTF-8"
  LC_TIME="zh_CN.UTF-8"
  LC_COLLATE="zh_CN.UTF-8"
  LC_MONETARY="zh_CN.UTF-8"
  LC_MESSAGES="zh_CN.UTF-8"
  LC_PAPER="zh_CN.UTF-8"
  LC_NAME="zh_CN.UTF-8"
  LC_ADDRESS="zh_CN.UTF-8"
  LC_TELEPHONE="zh_CN.UTF-8"
  LC_MEASUREMENT="zh_CN.UTF-8"
  LC_IDENTIFICATION="zh_CN.UTF-8"
  LC_ALL=zh_CN.UTF-8
  locale 详解 字段
 
  1、 语言符号及其分类(LC_CTYPE)
  2、 数字(LC_NUMERIC)
  3、 比较和排序习惯(LC_COLLATE)
  4、 时间显示格式(LC_TIME)
  5、 货币单位(LC_MONETARY)
  6、 信息主要是提示信息,错误信息, 状态信息, 标题, 标签, 按钮和菜单等(LC_MESSAGES)
  7、 姓名书写方式(LC_NAME)
  8、 地址书写方式(LC_ADDRESS)
  9、 电话号码书写方式(LC_TELEPHONE)
  10、度量衡表达方式(LC_MEASUREMENT)
  11、默认纸张尺寸大小(LC_PAPER)
  12、对locale自身包含信息的概述(LC_IDENTIFICATION)。
  理解locale的设置
 
  设定locale就是设定12大类的locale分类属性,即 12个LC_*。除了这12个变量可以设定以外,为了简便起见,还有两个变量:LC_ALL和LANG。
 
  它们之间有一个优先级的关系:LC_ALL > LC_* > LANG
 
  可以这么说,LC_ALL是最上级设定或者强制设定,而LANG是默认设定值。
 

(编辑:拼字网 - 核心网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!