这个问题困扰了一天。因为要做一个考勤机的东西,
打算用JAVA来调用
接口,然后做个托盘,让运行的程序方便管理。项目是utf-8的。文件也都是utf-8的。
设定了字体
Font font = new Font("宋体", Font.PLAIN, 12);
Enumeration<Object> keys = UIManager.getDefaults().keys();
while (keys.hasMoreElements()) {
Object key = keys.nextElement();
if (key.toString().toLowerCase().contains(".font")) {
UIManager.put(key, font);
}
}
所有中文放到一个ini的文件中,也是utf-8的,但是所有中文都正常显示了,除了加入到托盘的右键菜单。MenuItem.很奇怪,用了很多方法转码,用native2ascii转码ini文件中的中文,但是一样的问题。就是MenuItem不能使用,升级了jdk,最后还是不行,
最后在快要熬不住想睡觉的时候,通过修改eclipse的
编码运行成功,只需要修改eclipse的run中的参数,本来commond中的编码参数为utf-8,改成gb18030就可以了,
哎。居然就是这个问题。运行的时候。会看到
java的参数
-Dfile.encoding=GB18030
在eclipse的
debug视图中,右键Properties可以看到运行的命令及参数。。
---------------------------郁闷的分割线------------------------
刚才又测试了下。用fat-jar打包成jar以后,不管是否设定encoding都可以运行正常。。
睡啦。。。.