properties.load(in); 引出的中文乱码问题

/**
* Reads a property list (key and element pairs) from the input byte stream.
* The input stream is in a simple line-oriented format and is assumed to use the ISO 8859-1 character encoding;
* that is each byte is one Latin1 character.
* Characters not in Latin1, and certain special characters,
* are represented in keys and elements using Unicode escapes as defined in
* section 3.3 of <cite>The Java Language Specification</cite>.
* The specified stream remains open after this method returns.
*/

load(InputStream inStream)

以上我们注意到一下几点:

1. 从byte流中读取键值对

2. 流应该是规范的properties文件,流被假定为ISO 8859-1 字符编码(即流编码为gbk时会产生乱码)

3. 1byte对应8bit,即二进制 1111 1111 ,表示范围是十六进制 00-FF

4. 默认字符之外的字符应该使用Unicode 逃脱(eclipse properties 自带该功能),例如:小明 → \u5c0f\u660e

5. 该方法执行完毕后,流依旧开着,需要调用close 将流关闭

/**
* Reads a property list (key and element pairs) from the input character stream in a simple line-oriented format.
*/

load(Reader reader)

以上我们注意到以下几点:

1. 从character流中读取键值对

2. 流应该是规范的properties文件

3. input character stream 是可以读取中文的

乱码解决方案一:

using Unicode escapes

乱码解决方案二:

将InputStream 转换成 Reader

import java.io.InputStreamReader;
properties.load(new InputStreamReader(in));
时间: 2024-10-26 12:37:02

properties.load(in); 引出的中文乱码问题的相关文章

配置Tomcat解决URL传参引出的中文乱码问题

今天在写一个JSP页面时候,发现下面报错: <span style="font-size:18px;"> <a href="request.jsp?username=小七七">测试URL传参</a></span> 通常情况下,通过使用contentType和下面的就可以解决传参过程中的中文乱码问题,但是貌似URL传参还要设备别的东西. <% request.setCharacterEncoding("u

eclipse中文乱码

问题描述: 在导入log4j.properties文件时里面出现中文乱码,如下: ### 设置### log4j.rootLogger = debug,stdout,D,E ### è¾?å?ºä¿¡æ?¯å?°æ?§å?¶å?° ### log4j.appender.stdout = org.apache.log4j.ConsoleAppender log4j.appender.stdout.Target = System.out log4j.appender.stdout.layou

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

碰到了用java.util.Properties读取中文内容(UTF-8格式)的配置文件,发生中文乱码的现象 Properties prop=new Properties(); prop.load(Client.class.getClassLoader().getResourceAsStream("config.properties")); 由于使用这样的加载方式使用了系统默认的编码格式,不是UTF-8格式的读取模式,就会发生乱码情况. 正确解决方法 Properties prop=n

java读取.properties文件及解决中文乱码问题

Java项目中有些信息(例如web的配置信息)可能要放在.properties文件中,那我们应该怎么来读取它们呢,下面给出一个工具类做一说明,并解决了中文乱码问题: 1.其中config.properties文件信息如下: name=\u843D\u82B1\u6709\u610Fwang王 str=\u6D41\u6C34\u65E0\u60C5 boolean=true 2.PropertiesUtil工具类读取.properties文件 import java.io.BufferedInp

读取Properties文件以及中文乱码问题

在java类中常见的读取Properties文件方式,是使用Properties.load(inputStream);的方式但是常常出现中文乱码问题,这就很尴尬了 public synchronized void load(InputStream inStream) throws IOException { load0(new LineReader(inStream)); } 看了很久才发现,还有一个重载的方法, 它的参数是Reader,如下: public synchronized void

SpringMVC+HibernateValidator,配置在properties文件中的错误信息回显前端页面出现中文乱码

问题: 后台在springMVC中使用hibernate-validator做参数校验的时候(validator具体使用方法见GOOGLE),用properties文件配置了校验失败的错误信息.发现回显给前端页面的时候中文错误信息显示乱码. 封装参数的POJO类 public class UserReqBean { @NotNull(message="{user.name.notnull}") private String userName; } ValErrMsg.propertie

properties解决中文乱码

读取 properties文件,解决中文乱码 ConfigurableEnvironment environment = context.getEnvironment(); String env=environment.getActiveProfiles()[0]; Properties pro = new Properties(); Map<String, String> mpro = new HashMap<String, String>(); String proName =

Eclipse的properties文件中文乱码解决方法

转自:http://jingyan.baidu.com/article/ed2a5d1f3381d709f6be17f8.html 打开Myeclipse,找到window这一栏,点击Preference 2 然后会弹出一个窗体,点击General展开选项,然后点击Content Types 3 在右边的窗口中点击Text展开,然后点击java Properties File 4 将下面的编码格式设置成UTF-8就能解决java Web项目文件中的config.properties文件中文乱码的

IDEA使用笔记(五)——*.properties中文乱码的修正

问题:我的IDEA已经将文件的字符集设置成了UTF-8,但是中文在*.properties文件中还是会出现乱码,后来经同事指点修改了一项配置就ok了!话不多说,看下面的对比就清楚了. 设置前: 设置后: 注意:设置前IDEA编辑的时候中文是能正常显示的,重启IDEA之后就出现了乱码的现象,设置后再次重启IDEA乱码就自动ok了!