关于中文乱码问题

本文介绍了解决Linux系统中文件名或内容显示乱码的方法,包括临时和永久修改字符集;解决Xshell连接Linux服务器时中文输入乱码的问题;以及在Windows环境下使用Maven打包Java项目时出现的中文乱码解决方案。
摘要由CSDN通过智能技术生成

本文涉及到三种乱码情形

  • linux 显示乱码
  • xshell 输入中文乱码
  • java项目使用maven编译后乱码

linux 显示乱码

系统:centos 7.2
现象:文件名或者文件内容带有中文字符时,显示乱码。
原因:系统默认的的字符集为en_US.UTF-8
解决:修改系统字符集为zh_CN.UTF-8

  • 查看系统当前字符集,linux命令行输入:echo $LANG

  • 临时修改方案,在命令行输入: export LANG=zh_CN.UTF-8

  • 长期方案,编辑/etc/locale.conf文件,将LANG的值修改为zh_CN.UTF-8
    这里写图片描述
    或者修改用户的配置文件 ~/.bashrc,加上该配置 export LANG=zh_CN.UTF-8
    重启机器, 执行 reboot 命令 ,或者重新加载配置文件

以上配置的前提是系统已经安装了中文字体,那么如何知道系统是否安装了中文呢?
我们可以通过命令查看:locale -a | grep zh ,如果查看到有,则可以按上面的方式配置。
这里写图片描述
如果没有,则需要安装中文字体, 联网状态下可以执行:yum -y groupinstall chinese-support

xshell 无法输出中文

系统:win 10
现象:windows系统下通过xshell连接linux服务器,服务器有个中文文件名的文件,想要查看它,但是无法输入中文。
原因:windows系统的输入法有问题。
解决:修改windows输入法。

  • 检查xshell设置的字符编码,设为UTF-8
    这里写图片描述

  • 打开 控制面板-> 时钟、语言和区域 -> 语言 ,除了中文输入法,其余的都删除。
    这里写图片描述

该方案查询自:moralistxp的博客 ,经验证可行。

java项目文件使用maven打包后乱码

系统:win 10,centos 7.2
现象:java项目中某文件中带有中文(例如日志输出中带有中文),在windows下输出正常,显示中文,但是部署到linux中发现显示乱码。
原因:Intellig开发项目时设置的文件编码为 utf-8,但在DOS中使用maven对项目进行编译打包时,maven使用的系统默认的编码gbk,导致乱码。
解决:在编译插件中设置字符编码。

  • 修改pom文件,增加如下插件:
<properties>
    <java.version>1.8</java.version>
    <maven.compiler.encoding>UTF-8</maven.compiler.encoding>
</properties>

<plugin>  
    <groupId>org.apache.maven.plugins</groupId>  
    <artifactId>maven-compiler-plugin</artifactId>  
    <version>3.1</version>  
    <configuration>  
        <source>${java.version}</source>  
        <target>${java.version}</target>  
        <encoding>${maven.compiler.encoding}</encoding>  
    </configuration>  
</plugin>
<plugin>   
    <groupId>org.apache.maven.plugins</groupId>   
    <artifactId>maven-resources-plugin</artifactId>   
    <version>2.3</version>   
    <configuration>   
        <encoding>${maven.compiler.encoding}</encoding>   
    </configuration>   
</plugin>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值