ASCII的SOH的用处
讲讲 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);
}
}
我们编译,并将输出结果重定向到一个文件:
javac SOHTest.java
java SOHTest > 1.txt
我们用 VSCode 打开,可以看到有这样的分隔符
用一些文本编辑器,可以看的更清楚一点:
注意,这种控制字符,是不可打印的,所以在不同情况下显示的也不同。例如在 IDE 里,在浏览器上,显示出来的效果可能都不同,例如笔者遇到的就有这些:
本文相关的代码和 1.txt 文件已上传到 Gitee:https://gitee.com/peterjxl/LearnJava/tree/master/src/01.JavaSE/05.OOP/15.character
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!