JAVA与IDEA编码(乱码问题分析)全解析

本文深入解析JAVA与IDEA的编码问题,涵盖三个方面:代码源文件的编码与javac编译器一致性,JAVA运行时输出到控制台的编码与控制台解析编码的一致性,以及properties文件的编码问题。强调源文件编码与javac的匹配,JAVA程序输出编码的配置,以及IDEA中properties文件的透明ASCII转换设置对避免乱码的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

对于整个编码问题的根本分析思路可以先参考我的另一篇博客:网页设计中文乱码原理剖析

本文从三个方面解析JAVA与IDEA的编码问题

1. 代码源文件的编码与javac编译器读取源文件使用的编码

2. java程序输出编码与显示控制台使用的编码

3.properties文件的编码问题

 

代码源文件的编码与javac编译器读取源文件使用的编码需一致

首先IDEA关于编码的设置主战场如下图:

Global Encoding作为IDE的全局编码,Project Encoding为System Default时生效,当Project Encoding不为System Default时,以Project Encoding为准。

经过一天的研究,发现IDEA这一块的功能还不是很完善成熟的,特别是一个Project中使用不同编码的*.java文件时,极其容易出现各种不确定的编码问题(目前用的是IDEA 2019.3,不知道以后会不会优化)。所以个人的建议是,一个Project的所有*.java最好是使用同一种编码,并且必须与此处的设置要一致,下方的特定文件编码列表只用于配置文件、属性文件或其他不含*.java的文件夹(最好是完全不要手工去编辑添加这个特定文件编码列表,IDEA会自动添加你的特定文件)。该处的设置主要是决定javac编译源文件时读取源文件用的编码,源文件与javac读取源文件所用的编码必须一致,否则,在java运行字节码文件时,无论怎么配置,都不大可能产生正确的输出,因为在编译阶

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值