`
java_zhentou
  • 浏览: 17945 次
  • 性别: Icon_minigender_1
  • 来自: 福州
文章分类
社区版块
存档分类
最新评论

Eclipse.Properties中文乱码问题解决

阅读更多
最近用Eclipse在开发Jira的插件,一直被中文显示乱码的问题困扰着。经过摸索,还有借助google强大的搜索找到了一堆相关的资料,终于把这个问题解决了。现在把这个过程整理下,作为备忘,也供需要解决类似问题的人作为参考。

问题的最初:在Eclipse里的工程里new了一个ResourceBundle类型的XXXXXX.properties文件。在这个文件做类似的定义:report.daily.pdt.projectid.name = 项目,保存时却出现错误提示:some character cannot be mapped using “ISO-8859-1” character encoding的提示,如下图:






有人建议使用eclipse的jinto插件编辑,会自动调用java的native2ascii把文件转码,但是我没有试验。


我尝试的解决方法1:

1.      右键点击该所在项目,点击properties;

2.      在出现的界面选择info;

3.      更改里面的Text File Encoding,选择Other:UTF-8,点击确定。

再尝试保存.properties文件,发现还是不能解决问题。

我尝试的解决方法2:

1.      菜单WindowèPreference..;

2.      在”type filter text”框里输入“content types”(中文版是:工作台èContent Types);

3.      输入完毕,eclipse会自动进行查找,查找到后会在右边显示出”Content Type”的属性;

4.      点击右边的Text,选择Java Properties Fils,设置以下两个选项:

<1>在Content types找到需要的文件类型: *properties(locked),选中后会显示在File associations一栏里;

<2>这时可以看到该类型文件的Default encoding是ISO-8859-1,把它删掉,改为:UTF-8,然点击update,再点击确定。

再尝试保存.properties文件,发现可以保存写有中文文字的属性文件。

但是将该工程打包,运行,发现XXXX.properties里的中文文字显示在页面后,竟然都是乱码。

真是郁闷~



继续Google学习。。。



我们用API操作properties文件,如果获取的属性值是中文,为什么会出现乱码呢?

如果编码(输出)和解码(读入)用的encoding不一致的有可能会引起中文乱码问题。

1.      假设如果我们创建properties文件用的encoding是GBK,我们写入了中文

2.      Properties文件默认机制是采用ISO8859-1处理

3.      我们用Properties.getProperty(String key)接口读取内容,这是时候得到的是乱码。因为想用ISO8859-1对GBK编码的内容进行解码

4.      我们把用Properties.getProperty(String key)接口读取内容转换为创建properties文件时用的encoding(GBK)就可解决问题了

5.      【代码示例】 

1 public class PropertiesUtil {
2     /**
3      * util class
4      */
5     private PropertiesUtil() {}
6    
7     /**
8      * 指定编码获取properties文件中的属性值(解决中文乱码问题)
9      *
10      * @param properties   java.util.Properties
11      * @param key              属性key
12      * @return
13      */
14     public static String getProperty(Properties properties, String key, String encoding) throws UnsupportedEncodingException {
15         //param check
16         if (properties == null)
17             return null;
18        
19         //如果此时value是中文,则应该是乱码
20         String value = properties.getProperty(key);
21         if (value == null)
22             return null;
23        
24         //编码转换,从ISO8859-1转向指定编码
25         value = new String(value.getBytes("ISO8859-1"), encoding);
26         return value;
27     }
28 }

如果你的应用创建中使用的系统默认编码,则如下转化:

PropertiesUtil.getProperty(properties, "TestKey", System.getProperty("file.encoding"));




这种方法依然不够“友好”,我没有尝试。

继续学习。。。。



要想在.properties里正确存储中文字符,有两种方法:

1.      用java里自带的工具:”native2ascii”.

用法:在CMD里打入”native2ascii”后回车,接着再输入中文,就可以显示出ascii码。

然后把这些ascii码复制到.properties相应的文件里就可以了。

这个方法,我试了,真的管用,就是很麻烦而且再次修改时将特别不直观。



相当也可以把写好的整个文件一起转化为ascii的文件。

ü   在你的ApplicationResources.properties文件目录里新建一个a.txt文件

ü   打开cmd

ü   输入native2ascii

ü   进入到ApplicationResources.properties文件所在目录

ü   运行:   native2ascii   a.txt   ApplicationResources.properties

这样就可以得到a.txt文件里中文的Unicode码文件----ApplicationResources_new.properties。也就是说你可以直接在a.txt里写入,修改中文,然后在如上编辑一次a.txt文件,即可在ApplicationResources_new.properties文件中一次性写入中文的Unicode码。

还可以运用 native2ascii -encoding gb2312  命令还能将其转换为其他字符格式。

2.      下载插件,在输入中文字符时就能自己转化了。

这里比较流行有三款插件:

ü  PropertiesEditor:

http://propedit.sourceforge.jp/index_en.html

ü   com.lifesting.peditor_1.0.0:

http://www.blog.java.net/files/lifesting/com.lifesting.peditor_1.0.0.zip

ü   ResourceBundleEditor----com.essiembre.eclipse.i18n.resourcebundle_0.7.7

http://sourceforge.net/projects/eclipse-rbe/

(一)   PropertiesEditor: Eclipse内置一个properties editor,但只支持latin-1编码,调用native2ascii太麻烦,在sourceforge上有一个很强大的propeties editor,日本人写的,也支持中文,版本比较老大,3.1,还有很多没有多大用处的swing, jbuild支持等。

       所以这个插件我就没有试了。

(二)   peditor:这是网友根据1). PropertiesEditor修改的最小化编辑器,下载后改后缀后zip为jar,然后放在eclipse/plugins目录下,重新启动eclipse.

点击菜单Window——preferences——General——Editors——File Associations,在下拉列表中选择*.properties,执行文件关联。如下图所示:






ApplicationResources.properties,右键点击,选择打开方式,会出现刚加载编辑器,如下图所示:
      



输入如下图:






则会自动转化为如下图:






保存,打包试验,这次能正确显示中文了,而且感觉还挺方便的。

(三)   ResourceBundleEditor

这个的编辑界面会更友好,是以树节点的形式提供编辑的,配置方法跟peditor,就不再重复了。




打开后,可以看到如下界面:






这个方法也可以正确显示中文。

好了,以上介绍的各种插件及方法任君选择。

分享到:
评论

相关推荐

    eclipse下properties文件中文乱码的解决方案

    eclipse下properties文件中文乱码的解决方案

    myeclipse 6.0.1 properties文件文中乱码问题 详细解决方案

    myeclipse 6.0.1 properties文件文中乱码问题详细解决: 1。包括各个版本eclipse的插件;插件放置位置;使用方法,(其实都很简单,但缺一不可,害我忙了大半天) 2。 native2ascii 手动转化的 最简单易用示例 3。 ...

    Eclipse properties中文插件

    Eclipse properties中文插件,可解决Eclipse/My Eclipse中properties文件的中文乱码问题。

    在eclipse中安装properties插件PropertiesEditor

    在eclipse中安装properties插件,解决application.properties中文乱码

    openfire_i18n_zh_CN.properties

    使用openfire4.2.3版本进行二次开发,在git上下载的文件中openfire_i18n_zh_CN.properties属性不全会导致openfire的管理平台和eclipse的控制平台的中文出现乱码,可以用此文件进行替换。

    eclipse-properties文件插件

    虽然可以native2ascii进行解决,但是使用起来不方便,为了解决这个问题,可以为Eclipse安装Properties Editor插件解决这个问题。 Properties Edito官网地址:http://propedit.sourceforge.jp/index_en.html ...

    eclipse的 PropertiesEditor

    用来解决eclipse中. properties中文显示乱码的问题的插件,下载插件后,解压放在eclipse安装目录的dropins文件夹下,然后重启

    Myeclipse2015 properties Editor 插件.rar

    .properties文件中汉字注释信息以Unicode编码,类似显示乱码,不好阅读。 安装步骤: 1: 解压下载的jp.gr.java_conf.ussiy.app.propedit_6.0.5.zip压缩包,eclipse目录下找到复制features,plugins到myeclipse的...

    java、android项目在eclipse中显示中文乱码问题2

    (2)修改单个工程的编码方式:右击工程,在弹出的菜单中选择最后一项“Properties”在打开的新窗口左边的菜单树中选择 Info(即第一个),然后在右面找到

    eclipse插件properties

    解决中文乱码问题,将这两文件夹中的文件复制到eclipse安装目录下相对应文件夹,然后重启eclipse!

    properties editor下载

    解压后对应的放在Eclipse的安装目录下即可,解决Eclipse中Properties文件中文乱码问题。

    unicode编码eclipse插件

    properties配置文件在eclipse中乱码处理插件 properties配置文件在eclipse中乱码处理插件 操作说明在压缩包内

    properties editor(Eclipse插件)

    关于项目中的propertie的文件查看中文时不乱码的eclipse插件(内有安装方法) 关于项目中的propertie的文件查看中文时不乱码的eclipse插件

    myEclipse乱码解决办法

    在Myeclipse导入一个项目,有中文乱码问题,解决方法如下: 一、将整个project设置编码UTF-8(UTF-8可以最大的支持国际化) windows-&gt;Preferences-&gt;general-&gt;Workspace-&gt;Text file encoding-&gt;Other框中的Text ...

    eclipse乱码+开源转码插件+批量操作

    开源的Eclipse的文件转码插件,可以在不影响中文的情况下改变项目文件编码。 问题描述:我们项目开发都统一采用utf-8格式编码,但昨天研发部的一个产品要集成进来,他们是用gbk编码的,如果强行将文件设置成utf-8...

    基于SpringMVC+Spring+MyBatis开发的个人博客网站-毕业设计.zip

    数据库乱码,在MySQL安装路径,比如(E:\MySQL\MySQL Server 5.5)下找到my.ini文件进入编辑,修改这两处地方为utf8,默认是拉丁文 character-set-server=utf8 default-character-set=utf8 本项目使用到的mail服务...

    PropetiesEditor,编码国际化

    properties的eclipse插件,解决中文乱码问题

    propertiesEditor

    propertiesEditor,一个eclipse的插件,专门用来编辑properties而不出乱码,附安装教程

    大学生毕设+基于JavaWeb带GUI界面+花店管理系统(前后端源码+数据库)

    网上花店(flower) 功能简介: 1, 支持商品展示, 分类搜索查看详情等 ...3, 请保证数据库默认编码为utf8, 否则可能会出现中文乱码问题 4, 项目简陋, 仅供学习参考, 如有任何问题请旺旺联系 测试用户: 前台1/1 后台1

Global site tag (gtag.js) - Google Analytics