第一次尝试给java程序添加系统托盘图标(TrayIcon),发现菜单显示中文为乱码,一个个小方框,后来在网上找到一位网友的文章《MenuItem显示中文乱码问题解决方案》

第一次尝试给java程序添加系统托盘图标(TrayIcon),发现菜单显示中文为乱码,一个个小方框,后来在网上找到一位网友的文章《MenuItem 显示中文乱码问题解决方案》,按照里面的思路解决了。

引用文章里“问题的原因”:

1. 本地系统区域语言字符集的问题,我们的系统可能默认的字符集为GB2312或GBK。

2. Java源文件编码字符的问题,如果使用eclipse可以查看一下java source文件的编码方式。

3. javac编译时的字符问题,这一个问题很容易被忽略,运行一下javac可以看到有一个encoding的参数可以设置----这一个很重要。

4. 要读取文件的编码和读取时的字符集设置问题,如果我们要用的字符串不是硬编码在java源码中,而是从资源文件中读取时,就要注意这个问题了。

解决方法呢:

第一种情况,本地系统的语言字符,我们管不了;

第二种情况,转换一下文件的编码就好了;

第三种情况,当我们检查确定Java源文件编码字符是UTF-8,对javac编译时的参数设置,增加encoding参数,如:javac -encoding utf8 Test.java

但在Eclipse没找到相关的设置,只好有以下方法:

1.手工编译使用到MenuItem的类,目前只发现java.awt包会存在这个问题,swing包能很好的解决这种字符集变换的问题。

2.使用其它编译方式,如ant、Maven,它们都能配置javac。先给出网友文章给出的Maven例子:

org.apache.maven.plugins

maven-compiler-plugin

2.3.2

1.6

1.6

utf8

....

而我用Ant的:

destdir="${targetdir}"

encoding="UTF-8"

target="1.6"

classpathref="libraries" />

4. 要读取的文件的字符编码和读取流编码,香港虚拟主机,对一个资源文件,我们也要设置其编码为utf8(参照第2条,跟设置java源文件编码是一样的),同时在使用流读取时也要设置流的读取编码(这个网上说java字符流的默认的是jvm的编码,跟系统字符集一致)。

读取流代码如下:

BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(langFile), "utf8"));

这里还要注意的是:在复制这个资源文件时,网站空间,最好也设置一下编码,如用ant复制时:

tofile="D:\klaudisk-client\target\conf\settings.ini" overwrite="true" encoding="utf8"/>

还可以使用Properties.load()方法来加载.properties文件(该文件是被java bin下的navie2asc程序处理过的文件),这样就不用管第4点问题了。

我的问题是第3种情况,使用Ant来编译生成jar,美国服务器,解决了!

java menuitem 乱码_MenuItem 显示中文乱码问题的解决方案相关推荐

  1. java menuitem 图标_MenuItem 显示中文乱码问题解决方案

    MenuItem 显示中文乱码问题解决方案 今天在使用Java做系统托盘图标(TrayIcon),需要为其增加一个右键弹出菜单(PopupMenu),在使用菜单项(MenuItem)时,遇到了一个非常 ...

  2. UltraEdit连接linux中文乱码,UltraEdit显示中文乱码的解决办法

    用UltraEdit打开UTF-8编码的文件时,有时候中文会显示乱码.网上搜索到一个比较好的解决办法: 方法就是打开UltraEdit安装路径下的Uedit32.ini (如果没有这个文件,那说明你的 ...

  3. java 显示中文_java显示中文乱码的解决方法

    java显示中文乱码的解决方法 发布时间:2020-06-16 11:08:43 来源:亿速云 阅读:97 作者:Leah 这篇文章运用简单易懂的例子给大家介绍java显示中文乱码的解决方法,代码非常 ...

  4. centos php 中文乱码,XShell连接CentOS 7.2显示中文乱码问题的解决方法

    背景 使用U盘往Windows主机.Linux主机传文件还是经常的事,但有时候文件名有中文, 传到Linux机器会有乱码,选择起来也很麻烦,最近刚好遇到,写下解决方法. 环境 Linux [root@ ...

  5. navicat for mysql 显示中文乱码解决办法

    navicat for mysql 显示中文乱码解决办法   最近遇到一个问题,用navicat for mysql 打开数据库时全都显示的是乱码(在用程序代码插入数据之前确保字符不是乱码),遇到问题 ...

  6. java web 中有效解决中文乱码问题-pageEncoding与charset区别, response和request的setCharacterEncoding 区别

    java web 中有效解决中文乱码问题-pageEncoding与charset区别, response和request的setCharacterEncoding 区别 参考文章: (1)java ...

  7. linux命令框显示中文乱码_CentOS终端命令行显示中文乱码的解决方法

    这篇文章主要介绍了CentOS终端命令行显示中文乱码的解决方法,以及测试方法和缺少中文字体时的解决方法,需要的朋友可以参考下 安装CentOS的时候选择了中文,结果在终端不能显示中文,都是乱码,解决方 ...

  8. ajax后台返回数据中文乱码_解决Jmeter返回值显示中文乱码 的三种方法及设置随机动态参数(非原创侵删)...

    一.Jmeter返回值显示中文乱码解决方法 第一种解决方法: 1. 点击线程组--添加--后置处理器--BeanShell后置处理程序 2.点击BeanShell后置处理程序,编写:prev.setD ...

  9. python画图显示中文乱码_解决Python pandas plot输出图形中显示中文乱码问题

    解决方式一: import matplotlib #1. 获取matplotlibrc文件所在路径 matplotlib.matplotlib_fname() #Out[3]: u'd:\\Anaco ...

最新文章

  1. Ubuntu/CentOS下使用脚本自动安装 Docker
  2. 《Python编程快速上手》7.18 实践项目
  3. MyEclipse中Web项目的重命名问题
  4. 计算机专业伦理总结,《计算机伦理学》节译实践报告
  5. 【渝粤题库】国家开放大学2021春2681煤矿采掘技术题目
  6. rust tpa_Rust(腐蚀)怎么tp求大神指教。请写在下面
  7. 在Windows2003 SP2上安装VS2005SP1遇到的问题
  8. 弹簧触摸开关原理图_电梯弹簧抱闸调整
  9. 2010 模板下载 罗斯文_选择并使用 Access 模板
  10. 多媒体技术的应用领域有哪些?
  11. oj1029统计素数并求和
  12. 塑料颗粒行业调研报告 - 市场现状分析与发展前景预测
  13. 如何看懂财务报表|介绍
  14. Win7系统怎么卸载IE浏览器
  15. Web开发的一点心得(二年工作总结版)
  16. 古月居ROS入门——话题、Publisher、Subscriber
  17. Overture教程之如何更改整首谱子的调号
  18. Java内部类及内部接口
  19. android开发之背景音乐与音效
  20. 针对L型区域的椭圆方程的差分法

热门文章

  1. 如何使用腾讯云GPU云服务器对图像或视频进行超分辨率
  2. windows使用Redis,出现局域网不能访问的问题解决
  3. 阅读笔记-进击的学霸-策略篇-结构化
  4. 东芝多功能彩色数码复印机/多功能数码复印机 error:unsupported PDL error
  5. 打印机(联网)连接无线网路,设置共享 mac
  6. 批处理获取所有文件、文件夹名字
  7. c java vb_现在大学学编程都是学的什么语言?c还是vb还是java
  8. ie8支持css吗,教你如何轻松解决css不兼容IE8
  9. 什么是316不锈钢?
  10. 分享一个js获取图片原始尺寸的方法。亲测,好用!!!