ASCII不可读字符28,29 31

时间:2011-02-26 17:15:52

标签: java unicode ascii

我正在根据分隔符处理需要拆分的文件。

以下代码显示为我正在处理的文件定义的分隔符

private static final String    component   = Character.toString((char) 31);
private static final String    data        = Character.toString((char) 29);
private static final String    segment     = Character.toString((char) 28);

有人可以解释一下这些特定分隔符的意义吗?

查看ASCII码,这些分隔符是文件,组和单位分隔符。我真的不明白这意味着什么。

4 个答案:

答案 0 :(得分:23)

Found this here. Cool website!

  

28 - FS - 文件分隔符文件   分隔符FS是一个有趣的控件   代码,因为它给了我们洞察力   计算机技术的方式   六十年代组织起来。我们现在   用于随机访问媒体,如RAM   和磁盘,但当ASCII   标准被定义,大多数数据是   连载。我不只是在谈论   串口通讯,也是关于   串行存储,如打卡,纸张   胶带和磁带。在这样的   这种情况显然是有效的   有一个控制代码来发信号   分离两个文件。 FS   是为此目的而定义的。

     

29 - GS - 组分隔符   数据存储是一个   一些控制的主要原因   用于获取ASCII定义的代码。   数据库大部分时间都是设置的   包含表,包含记录。所有   一个表中的记录具有相同的记录   类型,但记录不同的表   可以是不同的。组分隔符   GS被定义为将表中的表分开   串行数据存储系统。注意   那个词表没用过   时刻和ASCII人称之为   一组。

     

30 - RS - 记录分隔符   在一个组(或表)内的记录   用RS或记录分开   分隔器。

     

31 - 美国 - 单位分隔符   要存储的最小数据项   在数据库中称为单位   ASCII定义。我们会打电话给他们   现在。单位分隔符   将这些字段分隔成一个序列   数据存储环境。最新的   数据库实现需要   大多数类型的字段都有固定的   长度。记录中有足够的空间   分配给存储最大的   每个领域的可能成员,即使   在大多数情况下,这不是必需的。   这需要花费大量的空间   很多情况。美国控制代码   允许所有字段都有一个变量   长度。如果数据存储空间是   限制 - 如六十年代 - 这是一个   保护宝贵空间的好方法。   另一方面是串行存储   效率远低于表格   驱动RAM和磁盘实现   现代。我无法想象   现代SQL数据库的情况   使用存储在纸上的数据运行   磁带或磁性卷轴......

答案 1 :(得分:10)

阅读ASCII Delimiter section of this tutorial以了解这些内容。然后阅读this article,专门讨论使用28,29和31分隔文本的ASCII方式。

答案 2 :(得分:2)

ascii控制字符的范围是28-31。 (0x1C到0x1F)

31 Unit Separator
30 Record Separator
29 Group Separator
28 File Separator

示例调用:

char record_separator = 0x1F;
String s = "hello" + record_separator + "world"

答案 3 :(得分:1)

这些字符是控制字符。它们不是由人类编写或阅读,而是由计算机编写或阅读。你应该像在任何其他角色一样在你的程序中对待它们。