java properties文件转义字符和中文乱码解决
properties文件的分隔符是 =或者 :
第一次出现的就是分割符,第二次出现的也不需要转义,也即是(忽略掉[],只是着重描述字符)
[\=] [\:] 或者 [=] [:] 原封不动即可,但是如果有转义字符 [\] 则需要转义 [\\]代替
另外需要注意下,英文空格也需要转义也即[ ]前面添加[\]即为[\ ]【注意,如果是value中间的和最后的空格不需要转义,只是value开头的需要否则会自动被截断,换行在最后加\符号
,\必须是最后一个字符这样才能连接下一行,而且\连接的下一行的开头的空白符也是会被截断的】
对于value内的=:,/#;$*~-!%^&<>?这些符号都是不需要转义的;
有些博客认为这是Properties解析问题,又自行实现个解析,实在是很无所谓
以下为代码案例:
test.properties里的值
a=1=1==36:2:3
b=2:2:2==3=5
c=\3
d=\\4
e= 5
f=\ 6
以下为测试类
import java.io.IOException;
import java.util.Iterator;
import java.util.Map;
import java.util.Properties;
import java.util.Set;
public class PropertiesTest {
public static void main(String[] args) throws IOException {
Properties properties=new Properties();
properties.load(PropertiesTest.class.getResourceAsStream("test.properties"));
Iterator<Map.Entry<Object,Object>> it=properties.entrySet().iterator();
Map.Entry<Object,Object> entry=null;
while(it.hasNext()){
entry=it.next();
System.out.println("key:"+entry.getKey()+"___value:"+entry.getValue());
}
}
}
最终打印结果:
key:b___value:2:2:2==3=5
key:a___value:1=1==36:2:3
key:f___value: 6
key:e___value:5
key:d___value:\4
key:c___value:3
很明显,我们看到
e对应的空格因为没有转义就不见了
f对应的空格有转义得以保留
d对应的\有转义\\得以保留
a b等根本第二个及以后的:或=不影响解析
此外,properties里如果有中文,读取的时候需要转换,否则显示为乱码,文件本身为UTF-8
String companyName= new String(properties.getProperty("company").getBytes("ISO-8859-1"), "UTF-8");
这样就可以读取中文
转自:https://blog.csdn.net/a1091662876/article/details/73550969,有部分完善
java properties文件转义字符和中文乱码解决的更多相关文章
- spring使用@Value注解读取.properties文件时出现中文乱码问题的解决
解决办法 在spring中我们常常使用.properties对一些属性进行一个提前配置, spring 在读取*.properties文件时, 默认使用的是asci码, 这时 我们需要对其编码进行转换 ...
- Linux中文件/文本的中文乱码解决方法
Linux显示在Windows编辑过的中文就会显示乱码是由于两个操作系统使用的编码不同所致.Linux下使用的编码是utf8,而Windows使用的是gb18030.因此,解决Linux打开txt/c ...
- Java读取properties配置文件时,中文乱码解决方法
public static String getConfig(String key) { Properties pros = new Properties(); String value = &quo ...
- JAVA编程心得-Eclipse/MyEclipse 中文乱码解决办法
将别人的项目或JAVA文件导入到自己的Eclipse中时,常常会出现JAVA文件的中文注释变成乱码的情况,主要原因就是别人的IDE编码格式和自己的Eclipse编码格式不同.总结网上的建议和自己的体会 ...
- eclipse中.properties文件不能输入中文的解决办法
打开Eclipse-Window-Preferences,选择General->Content Types,然后修改右面的Text下的Java Properites File的默认编码方式为UT ...
- ResourceBundle (读取properties文件及中文乱码解决方法)
原文:http://blog.csdn.net/joecheungdishuiya/article/details/6304993 public class test { static Resourc ...
- java中文乱码解决之道(七)-----JSP页面编码过程
我们知道JSP页面是需要转换为servlet的,在转换过程中肯定是要进行编码的.在JSP转换为servlet过程中下面一段代码起到至关重要的作用. <%@ page language=" ...
- eclipse下properties配置文件中文乱码解决
properties文件常带有中文注释,eclipse显示是乱码. 安装插件(properties editor)可以解决properties配置文件乱码的问题. 菜单 : Help->Ecli ...
- java中文乱码解决之道(七)—–JSP页面编码过程
我们知道JSP页面是需要转换为servlet的,在转换过程中肯定是要进行编码的.在JSP转换为servlet过程中下面一段代码起到至关重要的作用. <%@ page language=" ...
随机推荐
- Fiddler抓取https请求证书问题【转载】
转载链接: https://www.cnblogs.com/liulinghua90/p/9109282.html
- Pytest权威教程06-使用Marks标记测试用例
目录 使用Marks标记测试用例 在未知标记上引发异常: -strict 标记改造和迭代 返回: Pytest权威教程 使用Marks标记测试用例 通过使用pytest.mark你可以轻松地在测试用例 ...
- socket.error: [Errno 32] Broken pipe . tcp
经过检查发现,是由于客户端请求的链接,在一次循环之后,产生的套接字关闭,没有新的客户端套接字进行请求连接,所以产生broken pipe错误
- 在Android Studio中找不到AppCompatActivity解决方案
在创建新的.java文件时,要导入父类中的 AppCompatActivity,报错,无法找到这个父类. 解决方案: 1.先找到“project structure”,然后app--Depende ...
- JavaWeb之基础(1) —— 文件、目录结构和创建项目
1. JavaWeb应用 JavaWeb应用从大类上分为静态和动态两种. 静态应用就是传统的HTML文件+素材资源构造的静态网页,不需要特殊的配置.JavaWeb也不是专门用来做静态网站的. 动态应用 ...
- fmex挂单挖矿
最近fmex上线挂单挖矿,针对挂单写了个程序,"跟随盘口,避免成交",0成本薅羊毛. 代码在 https://github.com/xiaoxiaoleo/fmexminer 使用 ...
- JVM 初始化阶段例子
创建如下Demo package com.example.jvm.classloader; class Parent{ static int a = 3; static { System.out.pr ...
- C语言中size_t类型详细说明【转载】
来看看网上的一些说法: C语言 size_t到底是个什么东东? 大神求解 . 简单理解为 unsigned int就可以了 . 这是在不同的机器里面的的头文件定义的相应宏定义,实际上是unsigned ...
- Mysql中如何查看慢查询以及查看线程
一.MySQL数据库有几个配置选项可以帮助我们及时捕获低效SQL语句 1,slow_query_log这个参数设置为ON,可以捕获执行时间超过一定数值的SQL语句. 2,long_query_time ...
- OGC open geospatial consortium标准服务
数据共享作为GIS行业的基础,是每一位从事GIS相关领域人员必须要了解的知识,而OGC服务作为行业标准,已经被各大GIS厂商广泛应用.究竟什么是OGC呢? OGC全称——开放地理空间信息联盟(Open ...