centos修改编码格式找不到/etc/sysconfig/i18n有解决方法

Posted 石工记

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了centos修改编码格式找不到/etc/sysconfig/i18n有解决方法相关的知识,希望对你有一定的参考价值。

前言
java程序线上输出的log4j用less打开,中文乱码,无法排查问题,尝试更改服务器编码格式去解决。

网上找Linux RedHat 更改系统编码格式的方法,都是说要改/etc/sysconfig/i18n 这个文件,可我在我虚拟机RedHat7.5 和CentOS 6.5中找了半天也没找到i18n,尝试下面的修改方案后,成功修改了编码格式。

一、永久修改编码格式
永久修改服务器编码格式需要root权限。

1. 查看系统版本


2.查看当前编码格式
[root@localhost ~]$ locale
LANG=zh_CN.UTF-8
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=
[root@localhost ~]$ 

3. 修改编码格式
[root@localhost admin]# vi /etc/locale.conf
#LANG="zh_CN.UTF-8"
LANG="en_US.UTF-8"


保存之后,执行下面语句刷新文件(避免重启服务器):

[root@localhost admin]# source /etc/locale.conf

4.查看编码
[root@localhost admin]# locale
LANG=en_US.UTF-8
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=

也可在开机执行脚本文件/etc/profile中设置:
在 /etc/profile 文件中添加
export LANG=en_US.UTF-8或者export LANG=zh_CN.UTF-8

二、会话(临时)修改编码
这种方式不需要root权限,但是更改只在当前session中有效,关闭连接重新登录之后,编码还是会引用/etc/locale/conf中的内容。

export LANG=en_US.UTF-8或者export LANG=zh_CN.UTF-8

 

以上是关于centos修改编码格式找不到/etc/sysconfig/i18n有解决方法的主要内容,如果未能解决你的问题,请参考以下文章

mac终端下修改MySQL的编码格式--找不到my-default.cnf及my.cnf

linux下修改文件编码格式

centos7修改编码格式

centos7修改编码格式

centos7修改编码格式

Linux之修改主机名(永久生效)