ASCII 的 SOH 的用处
# 10.ASCII 的 SOH 的用处
笔者在工作中,曾切切实实的用过 ASCII 的控制字符 SOH。先介绍下背景吧:
- 公司内有很多个系统,其中涉及到系统之间的数据同步,可以通过网络请求,也可以通过文件。
- 用文件的方式的话,就涉及到分隔符的问题。例如,在 csv 格式中,用逗号作为分隔符;也有写系统用 竖线 | 作为分隔符
- 而笔者接触的系统,用的是 SOH 作为分隔符,我推测是因为该系统用的 C 语言,常用该字符作为分隔符。
在不同操作系统下,查看其文件会用不同的体现。
# 实践下
这是一段 Java 代码:
public class SOHTest {
public static void main(String[] args) {
String string1 = "HOW";
String string2 = "DO";
String string3 = "YOU";
String string4 = "DO";
StringBuffer buffer = new StringBuffer();
buffer.append(string1).append("\001").append(string2).append("\002").append(string3).append("\003").append(string4);
System.out.println(buffer);
}
}
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
我们编译,并将输出结果重定向到一个文件:
javac SOHTest.java
java SOHTest > 1.txt
1
2
2
我们用 VSCode 打开,可以看到有这样的分隔符
用一些文本编辑器,可以看的更清楚一点:
注意,这种控制字符,是不可打印的,所以在不同情况下显示的也不同。例如在 IDE 里,在浏览器上,显示出来的效果可能都不同,例如笔者遇到的就有这些:
本文相关的代码和 1.txt 文件已上传到 Gitee (opens new window):https://gitee.com/peterjxl/LearnJava/tree/master/src/01.JavaSE/05.OOP/15.character
上次更新: 2024/10/3 10:01:52