Java读取配置文件(properties)时,如果文件中含有中文或其他非英文字符,需要进行字符编码转换,否则会出现乱码现象。此时可以采用unicode到UTF-8的编码方式。
以下是Java读取配置文件(properties)时unicode码转UTF-8的完整攻略:
1. 首先在properties文件中保存中文字符
在编辑properties文件时,需要保证其中的中文字符是以unicode编码的方式存储,如下所示:
hello=\u4f60\u597d
其中,\u4f60\u597d
代表的就是中文“你好”的unicode编码方式。
2. 读取properties文件
在Java代码中读取properties文件时,可以使用Properties类进行读取,如下所示:
InputStream inputStream = getClass().getResourceAsStream("/config.properties");
Properties properties = new Properties();
properties.load(new InputStreamReader(inputStream, "UTF-8"));
这里第二个参数”UTF-8”代表指定编码方式为UTF-8。
3. 转换properties文件中保存的unicode为对应字符
在读取properties文件时,需要将其中保存的unicode编码转换为对应的字符,可以使用Java自带的工具类java.util.Properties
的load
方法,它内部会自动处理unicode编码转换,如示例2所示。
4. 示例1:保存中文字符的properties文件
保存为UTF-8编码格式的properties文件,内容如下:
site.name=\u7f51\u7ad9\u540d\u79f0
site.description=\u7f51\u7ad9\u63cf\u8ff0
其中\u7f51\u7ad9\u540d\u79f0
代表的是中文网站名称, \u7f51\u7ad9\u63cf\u8ff0
代表的是中文网站描述。两个中文字符串都使用unicode编码方式存储。
5. 示例2:读取properties文件并转换字符编码
读取以上示例1保存的properties文件,并将其中的unicode编码转换为对应的中文字符,代码如下:
String file = "/config.properties";
InputStream inputStream = UnicodeToUtf8.class.getResourceAsStream(file);
Properties prop = new Properties();
prop.load(new InputStreamReader(inputStream, "UTF-8"));
String siteName = prop.getProperty("site.name");
String siteDesc = prop.getProperty("site.description");
System.out.println(siteName); // 网站名称
System.out.println(siteDesc); // 网站描述
以上代码中,输出的结果分别为”网站名称”和”网站描述”,即成功将unicode编码转换为对应的中文字符。
以上就是Java读取配置文件(properties)时,unicode码转UTF-8的完整攻略,包含了两个示例。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:java读取配置文件(properties)的时候,unicode码转utf-8方式 - Python技术站