Java 显示读取properties 乱码解决方案

摘要:
②java读取propertieskey的时候用转码newString,这种方法是转码读取。第一种方法优点在于编写的时候没有任何障碍,缺点是在部署的时候麻烦点,需要用命令转了以后再放到项目里,如果频繁更改文件内容的话,是挺烦的。第二种方法优点在于编写键值对的时候没有障碍,部署时也无需再手动更改编码,但是在java代码里需要更改读取方式,而且这种读取时转码也挺费时的。

项目开发时,在配置springmvc 校验错误提示信息时,配置到properties的中文,在前端取出时,显示为乱码,可以确定properties 配置文件已经被设为UTF-8编码,在springmvc.xml 给处理器适配器配置指定错误提示信息配置文件时,资源文件格式也是设为UTF-8的,但是调试时发现通过注解获取的properties包含中文的属性就是乱码,网上搜索了一晚上才找到解决方案,具体如下:

  1java读取一些自写的properties配置文件,如果包含中文则需要进行转码读取或转码存储

普通的方法无非两种:
① 用java命令行工具native2ascii,这种方法是转码存储。
② java读取properties key的时候用转码new String( key.getBytes("ISO-8859-1"),"gbk"),这种方法是转码读取。
第一种方法优点在于编写的时候没有任何障碍,缺点是在部署的时候麻烦点,需要用命令转了以后再放到项目里,如果频繁更改文件内容的话,是挺烦的。
第二种方法优点在于编写键值对的时候没有障碍,部署时也无需再手动更改编码,但是在java代码里需要更改读取方式,而且这种读取时转码也挺费时的。

2那么有没有办法既不用读取时更改代码转码,也不用存储时手工转码的方法呢

答案是有的,myeclipse自带的编辑器myeclipse properties editor就可以,在工程里用它打开properties文件(默认打开方式),然后选properties标签页,这时能看到排列整齐的键值对,只需要填值就可以了,myeclipse会自动转为ascii的编码来存储的。
myeclipse properties editor:
Java 显示读取properties 乱码解决方案第1张

然后双击打开查看,输入的键值对已经自动被转为ascii的编码,前端取出也不会出现乱码

Java 显示读取properties 乱码解决方案第2张

如果没有myeclipse怎么办
用UltraEdit编辑器,编写中文配置文件prop_cn.properties,在保存后再点击另存为,文件名为prop.properties,编码选择unicode ascii就可以了
转自:http://blog.sina.com.cn/s/blog_74a86d520101aj24.html

免责声明:文章转载自《Java 显示读取properties 乱码解决方案》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇SQL语句的解析过程python 之 数据库(修改表、复制表、删除表、单表查询)下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Java读取properties配置文件时,中文乱码解决方法

Java读取properties配置文件时,中文乱码解决方法 转自:http://pig345.iteye.com/blog/725974 碰到了用java.util.Properties读取中文内容(UTF-8格式)的配置文件,发生中文乱码的现象,   Java代码   Properties prop=new Properties(); ...

Spring Boot 2.0的属性绑定

Spring Boot2.0的属性绑定 原文从Spring boot第一个版本以来,我们可以使用@ConfigurationProperties注解将属性绑定到对象。也可以指定属性的各种不同格式。比如,person.first-name,person.firstName和PERSON_FIRSTNAME都可以使用。这个功能叫做“relaxed bindi...

shell实现大批量word转码然后分析相关字段

需求 需要从服务器中的所有附件(2013-2019) 共60G查找相关字段 在linux上面直接打开doc等是乱码的 思路 先全部附件转码为txt, 然后用grep遍历查找字段实现 转码shell #!/bin/bash #*******************************************************************...

3springboot:springboot配置文件(外部配置加载顺序、自动配置原理,@Conditional)

1.外部配置加载顺序 SpringBoot也可以从以下位置加载配置; 优先级从高到低 高优先级的配置覆盖低优先级的配置,所有的配置会形成互补配置 1.命令行参数 所有的配置都可以在命令行上进行指定 先打包在进行测试 java -jar spring-boot-02-config-02-0.0.1-SNAPSHOT.jar --server.port=80...

C#WinformSettings.setting配置

以下是学习笔记: 参考:https://blog.csdn.net/weixin_42451919/article/details/102819404?utm_medium=distribute.pc_relevant.none-task-blog-2~default~baidujs_title~default-0.no_search_link&s...

Python基础字符编码与转码

***了解计算机的底层原理*** Python全栈开发之Python基础-字符编码与转码 需知: 1.在python2默认编码是ASCII, python3里默认是utf-8 2.unicode 分为 utf-32(占4个字节),utf-16(占两个字节),utf-8(占1-4个字节), so utf-8就是unicode 3.在py3中encode,在转...