解决Linux 修改编码格式找不到/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中的内容。
在这里插入图片描述

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

也曾满眼星河

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值