做网站怎么添加图片,微信做单网站有哪些,海南论坛论坛网站建设,桂林北站官网转载自 关于java.util.Properties读取中文乱码的正确解决方案#xff08;不要再用native2ascii.exe了#xff09; 碰到了用java.util.Properties读取中文内容#xff08;UTF-8格式#xff09;的配置文件#xff0c;发生中文乱码的现象#xff0c; Properties propnew Pro…转载自 关于java.util.Properties读取中文乱码的正确解决方案不要再用native2ascii.exe了 碰到了用java.util.Properties读取中文内容UTF-8格式的配置文件发生中文乱码的现象 Properties propnew Properties();
prop.load(Client.class.getClassLoader().getResourceAsStream(config.properties));
习惯性google了一下网上大多数文章都是让大家用native2ascii.exe转换 这样的解决方案一开始还差点被懵住了以为只能使用这样的绕弯子方法。。。 但关键是太绕了 如果每次都用native2ascii.exe将中文转换成\uXXXX\uXXXX这样的麻烦先不说转换完后的文件完全不可读这基本上是不可忍受的 虽然也能用native2ascii.exe转换回来但同样麻烦 冷静下来后突然想起来还是初学java时看过java.io包中 Reader/Writer和Stream的区别。 年代久远具体细节忘记了大概是Reader/Write是处理编码文本的而InputStream/OutputStream只把数据当作2进制流 正确解决方案
Properties propnew Properties();
prop.load(new InputStreamReader(Client.class.getClassLoader().getResourceAsStream(config.properties), UTF-8));
其中“UTF-8”用于明确指定.properties文件的编码格式不指定则默认使用OS的这会造成同一份配置文件同一份代码在linux和windows上、英文windows和中文windows之间的表现都不一致这个参数应该和具体读取的properties文件的格式匹配。