java.util.Properties 乱码问题解决方案

今天碰到一个乱码问题,很是奇怪。 
小弟做了个system.properties文件 
包含简单的配置属性, 但是每次读取出来中文乱码。 
后来查看了资料才知道Properties默认的字符串是ISO8859-1。 
解决办法: 
将获取的字符串,重新构造一个基于UTF-8的字符串。 

str = new String(value.getBytes("ISO8859-1"), "UTF-8"); 

下面是具体代码。 

Java代码   收藏代码
  1. searchServerIp=localhost  
  2. searchServerPort=8889  
  3. serverTitle=基于Lucene在线客服软件Beta 1.0|Server  
  4. clientTitle=基于Lucene在线客服软件Beta 1.0|Client  
  5. firstTime=1000  
  6. period=1000*60*30  


Java代码   收藏代码
  1. /** 
  2.  *  
  3.  */  
  4. package net.tuolian.product.utils;  
  5.   
  6. import java.io.FileInputStream;  
  7. import java.io.FileNotFoundException;  
  8. import java.io.IOException;  
  9. import java.io.UnsupportedEncodingException;  
  10. import java.util.Properties;  
  11.   
  12. /** 
  13.  * @author sean 
  14.  *  
  15.  *         系统配置类 读取配置文件 
  16.  *  
  17.  */  
  18. public class Config {  
  19.     public static Config instance;  
  20.     static Properties prop;  
  21.   
  22.     private Config() {  
  23.         prop = new Properties();  
  24.         try {  
  25.             prop.load(new FileInputStream("system.properties"));  
  26.         } catch (FileNotFoundException e) {  
  27.             // TODO Auto-generated catch block  
  28.             e.printStackTrace();  
  29.         } catch (IOException e) {  
  30.             // TODO Auto-generated catch block  
  31.             e.printStackTrace();  
  32.         }  
  33.     }  
  34.   
  35.     /** 
  36.      * 单例模式 
  37.      *  
  38.      * @return 
  39.      */  
  40.     public static Config newInstance() {  
  41.         if (instance == null) {  
  42.             instance = new Config();  
  43.         }  
  44.         return instance;  
  45.     }  
  46.   
  47.     /** 
  48.      *  
  49.      * @param key 
  50.      * @return 
  51.      */  
  52.     public static String getProperty(String key) {  
  53.         if(instance == null){  
  54.             instance = Config.newInstance();  
  55.         }  
  56.           
  57.         if (key == null) {  
  58.             return null;  
  59.         }  
  60.           
  61.         String value = prop.getProperty(key);  
  62.         String str = null;  
  63.         try {  
  64.             //进行编码转换,解决问题  
  65.                    str = new String(value.getBytes("ISO8859-1"), "UTF-8");  
  66.         } catch (UnsupportedEncodingException e) {  
  67.             // TODO Auto-generated catch block  
  68.             e.printStackTrace();  
  69.         }  
  70.         return str;  
  71.     }     
  72. }  
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值