java.util.Properties 난 코드 문제 해결 방안

2347 단어 Javalucene.net
더 읽 기
오늘 어 지 러 운 문제 에 부 딪 혔 는데,매우 이상 하 다.
동생 이 system.properties 파일 을 만 들 었 어 요.
간단 한 설정 속성 을 포함 하지만 중국어 난 코드 를 읽 을 때마다.
나중에 자 료 를 보고 나 서 야 Properties 의 기본 문자열 이 ISO 8859-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;
	}	
}


좋은 웹페이지 즐겨찾기