今天碰到一个乱码问题,很是奇怪。
小弟做了个system.properties文件
包含简单的配置属性, 但是每次读取出来中文乱码。
后来查看了资料才知道Properties默认的字符串是ISO8859-1。
解决办法:
将获取的字符串,重新构造一个基于UTF-8的字符串。
str = new String(value.getBytes("ISO8859-1"), "UTF-8");
下面是具体代码。
searchServerIp=localhost
searchServerPort=8889
serverTitle=基于Lucene在线客服软件Beta 1.0|Server
clientTitle=基于Lucene在线客服软件Beta 1.0|Client
firstTime=1000
period=1000*60*30
/**
*
*/
package net.tuolian.product.utils;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.util.Properties;
/**
* @author sean
*
* 系统配置类 读取配置文件
*
*/
public class Config {
public static Config instance;
static Properties prop;
private Config() {
prop = new Properties();
try {
prop.load(new FileInputStream("system.properties"));
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
/**
* 单例模式
*
* @return
*/
public static Config newInstance() {
if (instance == null) {
instance = new Config();
}
return instance;
}
/**
*
* @param key
* @return
*/
public static String getProperty(String key) {
if(instance == null){
instance = Config.newInstance();
}
if (key == null) {
return null;
}
String value = prop.getProperty(key);
String str = null;
try {
//进行编码转换,解决问题
str = new String(value.getBytes("ISO8859-1"), "UTF-8");
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return str;
}
}
分享到:
相关推荐
详细介绍了java.util.logging.Logger的用法和结构,对如果扩展Logger起到抛砖引玉的作用!尊重劳动成果,亲下载了要给个评价!
java.util.ConcurrentModificationException 异常问题详解1
Tomcat内存溢出的解决方法(java.util.concurrent.ExecutionException:java.lang.OutOfMemoryError),内附解决方案!
本文通过对数据压缩算法的简要介绍,然后以详细的示例演示了利用java.util.zip包实现数据的压缩与解压,并扩展到在网络传输方面如何应用java.util.zip包现数据压缩与解压
1. java.util.concurrent - Java 并发工具包 2. 阻塞队列 BlockingQueue 3. 数组阻塞队列 ArrayBlockingQueue 4. 延迟队列 DelayQueue 5. 链阻塞队列 LinkedBlockingQueue 6. 具有优先级的阻塞队列 ...
Exception in thread “main“ java.util.InputMismatchException
java.util.Date与java.sql.Date互转及字符串转换为日期时间格式.docx
java.util.concurrent系列文章(1) java.util.concurrent系列文章(1) java.util.concurrent系列文章(1) java.util.concurrent系列文章(1)
主要介绍了java.util.concurrent.ExecutionException 问题解决方法的相关资料,需要的朋友可以参考下
java并发工具包 java.util.concurrent中文版-带书签版
详细介绍java.util.Date和java.sql.Date相互转换的多种方法总结,希望对大家有帮助
java.util包
axis2解决 org.apache.axis2.util.JavaUtils.callStackToString问题
这是我在编写struts2中遇到的问题,整理出来,包括截图,希望可以帮到大家
java.util.pdf
世界范围内的时区列表。由 java.util.TimeZone 类导出
java.util包源码,pdf版,方便打印
使用java.util.timer实现的简单定时任务,在实现简单一次性定时任务时,使用java.util.timer非常的简单易用,适合没有接触过quartz的新手急用。
java.util包总结,方便大家学习。请多指教。
java.util.concurrent总体概览图。 收取资源分3分。需要的同学可以下载一下。 java.util.concurrent主要包括5个部分executor,colletions,locks,atomic,tools。 该图详细的列举了并发包下面的结构,包含所有接口和...