Java罕见的乱码问题

本文介绍了两种常见的Java UI乱码问题:方框型乱码和问号型乱码,并提供了具体的解决方案。对于方框型乱码,通过更换组件类型可以解决;而对于问号型乱码,则需要在启动JVM时添加正确的文件编码参数。

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

1. 方框型乱码

Q: 使用Jframe时,窗体上的组件的文本信息显示乱码,显示方框型的乱码;

             分析:如果在Eclipse中使用debug的话,会发现数据完全正常,但是显示在JFrame上后就出现了方框型乱码,其本质并非乱码,而是使用的组件本身显示有问题,即问题出现在UI界面上,而不是业务逻辑上。所以需要更换高版本的组件或用其他组件代替;

             例,自定义了一个MyButton组件的类,继承自java.awt.Button,在JFrame的实例中添加MyButton的实例后,如果MyButton的文本内容使用中文或日文或其他非英文时,就会出现显示方框型乱码。

              A: 把MyButton所继承的java.awt.Button更换成javax.swing.JButton,问题得到解决。

2. 问号型乱码

             问号型乱码是经常出现的乱码问题,除了Java文件本身的文件编码格式和文件内容不一致导致的乱码问题(若使用Eclipse,只需把整个项目的属性中的编码改为UTF8即可解决)和String的转码问题外,此处提出了一个罕见的真正乱码问题。

             Q: 在开发工具(如Eclipse)中,如果同样使用Debug的话,会发现数据完全正常,不乱码。但是,作成jar包后,放到外环境(不在开发工具中),在外环境中运行时就出现了数据的乱码问题,多为问号"?"。

             分析: 显然问题不是出现在工程内部,而是出现在JVM上,实际上,在使用命令运行程序的时候是需要很多参数的,所以是缺参数的问题。

             A:  添加编码参数,如java -Dfile.encoding=utf-8 -jar  directory\xxx.jar,或javaw -Dfile.encoding=utf-8 -jar  directory\xxx.jar

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值