Java的AWT控件Button内容乱码的处理方案

本文探讨了在Java GUI应用程序中遇到的中文乱码问题,并提供了两种有效的解决方案。一是通过调整运行配置,设置文件编码为gbk;二是替换Button组件为JButton,以消除跨平台显示差异导致的乱码。这两种方法均可独立或结合使用。

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

项目编码是UTF-8的,在使用java.awt.Button居然会乱码,如下图所示:

网上找了下类似的解决方法有下面几种:

1. 设置运行环境:

    主类右键(或者上面工具栏)选择Run As中的Run Configurations-->在Arguments标签下的VM arguments中添加下面这行参数代码: -Dfile.encoding=gbk-->然后点击应用。

(关于这个参数可参考:https://blog.youkuaiyun.com/haixia_12/article/details/42424513https://blog.youkuaiyun.com/jv_csjh/article/details/78581826

 

     关于这个编码有很多中说法,有人说GB18030可以,也有人说UTF-8也可以,但是我的设置为UTF-8无效,我觉得这是老问题了,得从源头讲起:Windows默认编码是gbk(我们一般统一称这类为国标码,主要是为了兼容中文的),而linux默认为UTF-8(好像是整合了世界上所有的语言,就是啥都有,但是字库不一样),于是编码字库不对应就会出现乱码的问题。

    Eclipse默认的工作空间的编码为gbk(就是你新建一个文件,文件编码格式默认为gbk),而我们一般都会改为UTF-8,我猜测gbk的是不会出现乱码的情况,而我的之所以设置为UTF-8无效是因为字库不匹配问题,而要在Windows里面运行就要设置参数为国标码(有很多种标准,有兴趣可以自行了解),这样就可以解决了。

 

2.采用JButton:

Button是在java.awt.*中的类,具有平台的局限性,在不同的操作系统中显示的是不同的;

JButton是在javax.swing.*中的类,不具有平台的局限性,在Linux和Windows系统中显示的是相同的。

--引自:https://blog.youkuaiyun.com/shi201619616/article/details/80547163

javax.swing.JButton,(个人感觉)使用起来这两者好像差异不大。我把上面的参数去掉后,添加了JButton,这个不会乱码,但是Button会乱码。

 

当然上面这两种方法一起用也OK。

 

参考:Java GUI Button组件上的内容中文乱码问题

05-27
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值