Properties获取数据乱码解决

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
PropertyUtils.properties= properties;
}
}
三、Properties工具类
publicclassPropertyUtils{
privatestaticfinalLoggerlogger=LoggerFactory.getLogger(PropertyUtils.class);
privatestaticPropertiesproperties=newProperties();
}catch(UnsupportedEncodingExceptione) {
logger.error(e.getMessage());
}
returnvalue;
}
publicstaticPropertiesgetProperties() {
returnproperties;
}
publicstaticvoidsetProperties(Properties properties) {
}
}
/*
*method:getValue{根据key获取value}
*@paramkey
*@return属性文件中获取的value
*/
publicstaticStringgetValue(String key){
String value ="";
try{
value=newString(properties.getProperty(key).getBytes("iso-8859-1"),"UTF-8");
二、解决方法
通过getProperty()获取的数据data既然是ISO-8859-1编码的,就通过data.getByte(“iso-8859-1”)获取获取,使用new String(data.getByte(“iso-8859-1”),”UTF-8”)进行转换。当然properties文件的编码类型需要和new String(Byte[],charst)中的第二个参数的编码类型相同
Properties
B
2012/12/28InHangZhou
一、原因
Properties调用load(InputStream)时,读取文件时使用的默认编码为ISO-8859-1;当我们讲中文放入到properties文件中,通过getProperty(key)获取值时,取到得数据是ISO-8859-1格式的,但是ISO-8859-1是不能识别中文的。
解决方法通过getproperty获取的数据data既然是iso88591编码的newstringdatagetbyteiso88591utf8properties文件的编码类型需要和newstringbytecharst中的第二个参数的编码类型相同properties工具类publicclasspropertyutilsprivatestaticfinalloggerloggerloggerfactorygetloggerpropertyutilsclass
static{
try{
//加载配置文件
properties.load(PropertyUtils.class
.getResourceAsStream("/properties/freemaker.properties"));
}catch(IOExceptione) {
logger.error(e.getMessage());
相关文档
最新文档