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文件转义字符和中文乱码解决的更多相关文章

  1. spring使用@Value注解读取.properties文件时出现中文乱码问题的解决

    解决办法 在spring中我们常常使用.properties对一些属性进行一个提前配置, spring 在读取*.properties文件时, 默认使用的是asci码, 这时 我们需要对其编码进行转换 ...

  2. Linux中文件/文本的中文乱码解决方法

    Linux显示在Windows编辑过的中文就会显示乱码是由于两个操作系统使用的编码不同所致.Linux下使用的编码是utf8,而Windows使用的是gb18030.因此,解决Linux打开txt/c ...

  3. Java读取properties配置文件时,中文乱码解决方法

    public static String getConfig(String key) { Properties pros = new Properties(); String value = &quo ...

  4. JAVA编程心得-Eclipse/MyEclipse 中文乱码解决办法

    将别人的项目或JAVA文件导入到自己的Eclipse中时,常常会出现JAVA文件的中文注释变成乱码的情况,主要原因就是别人的IDE编码格式和自己的Eclipse编码格式不同.总结网上的建议和自己的体会 ...

  5. eclipse中.properties文件不能输入中文的解决办法

    打开Eclipse-Window-Preferences,选择General->Content Types,然后修改右面的Text下的Java Properites File的默认编码方式为UT ...

  6. ResourceBundle (读取properties文件及中文乱码解决方法)

    原文:http://blog.csdn.net/joecheungdishuiya/article/details/6304993 public class test { static Resourc ...

  7. java中文乱码解决之道(七)-----JSP页面编码过程

    我们知道JSP页面是需要转换为servlet的,在转换过程中肯定是要进行编码的.在JSP转换为servlet过程中下面一段代码起到至关重要的作用. <%@ page language=" ...

  8. eclipse下properties配置文件中文乱码解决

    properties文件常带有中文注释,eclipse显示是乱码. 安装插件(properties editor)可以解决properties配置文件乱码的问题. 菜单 : Help->Ecli ...

  9. java中文乱码解决之道(七)—–JSP页面编码过程

    我们知道JSP页面是需要转换为servlet的,在转换过程中肯定是要进行编码的.在JSP转换为servlet过程中下面一段代码起到至关重要的作用. <%@ page language=" ...

随机推荐

  1. setitimer()函数

    定时器时间函数 struct itimerval: struct itimerval *new_value,其定义如下: struct itimerval { struct timeval it_in ...

  2. Ring3挂起进程,跟恢复进程.

    目录 Ring3挂起进程,跟恢复进程. 一丶简介 二丶代码 Ring3挂起进程,跟恢复进程. 一丶简介 有时候我们做对抗的时候可能会遇到.一个进程常常操作我们.但是我们 可以通过挂起进程来挂起它让它无 ...

  3. UOJ#318. 【NOI2017】蔬菜 贪心

    原文链接 www.cnblogs.com/zhouzhendong/p/UOJ318.html 前言 我怎么越来越菜了.先是题目读错,想了个李超树假算法,然后读懂题之后没了耐心直接贺题.然后发现我数据 ...

  4. 第12组 团队Git现场编程实战

    分工及贡献 组内有三人去考证了,只剩下6人 组员 分工 贡献比例 王永福 前后端,爬虫,博客主体 30% 孙承恺 建模,算法设计,统筹 18% 邱畅杰 爬虫 15% 徐祖豪 前端数据可视化 13% 张 ...

  5. Fluent当中的通配符【翻译】

    本文翻译自fluent帮助手册 可以在TUI当中使用通配符指定特定区域的名称,一些例子如下: 通配符*等同于"所有区域"例如: -/display/boundary-grid * ...

  6. Kafka(二) —— Server端设计原理

    整理架构 kafka confluence kafka官方文档中文翻译-设计 消息设计 /** * 消息类 * * @author Michael Fang * @since 2019-11-14 * ...

  7. centos7磁盘分区、格式化、挂载

    1.分区:a. 查看磁盘分区表: # fdisk -l b. 查看指定磁盘分区表: # fdisk -l /dev/sdb c. 分区命令: fdisk /dev/sdb 常用命令: n:创建新分区 ...

  8. 【转】IDEA新建项目时,没有Spring Initializr选项(亲测有效)

    最近开始使用IDEA作为开发工具,然后也是打算开始学习使用spring boot.看着博客来进行操作上手spring boot,很多都是说创建一个新项目(Create New Project) 选择 ...

  9. Fixed-Length Frames 谈谈网络编程中应用层(基于TCP/UDP)的协议设计

    http://blog.sina.com.cn/s/blog_48d4cf2d0101859x.html 谈谈网络编程中应用层(基于TCP/UDP)的协议设计 (2013-04-27 19:11:00 ...

  10. web-linux-shell实现 阿里方案canvas+wss。

    wss://shell.aliyun.com/terminals?cols=92&rows=35 [root@webshell ~]# python Python 3.6.8 (default ...