许多语言都有只处理“明文”而不是二进制的函数。这是否意味着只允许使用 ASCII 范围内的字符?

二进制只是一系列字节,它不是类似于纯文本,只是一系列解释为字符的字节吗?那么,明文可以存储与二进制相同的数据格式/协议吗?

有帮助吗?

解决方案

通常意味着,语言可以随意将certian控制字符(例如值10或13)解释为逻辑行终止符。换句话说,输出操作可能会在结尾处自动附加这些字符,并且输入操作可能会将它们从输入中剥离(和/或终止在那里读取)。

相比之下,广告处理“二进制”广告的语言I / O操作。数据通常包含一个输入参数,用于操作数据的长度,因为没有其他方法(读取文件末尾的时间),无法知道何时完成。

其他提示

纯文本是人类可读的,二进制文件通常是人类无法读取的,因为它由可打印和不可打印的字符组成。

尝试使用文本编辑器(例如记事本或vim)打开jpeg文件,您就会理解我的意思。

二进制文件通常以优化速度的方式构造,因为不需要解析。 纯文本文件可手动编辑,而不是二进制文件。

"明文"可以有几个含义。

在这种情况下最有用的一个是它只是一个二进制文件,它以字节顺序组织,特定的计算机系统可以将其翻译成它所认为的有限集合“文本”。字符。

第二个含义,有点连接,是所述系统应该显示这些“文本字符”的限制。作为人类可读的符号,作为可识别字母表的成员。通常,不成文的含义是翻译机制是ASCII。

第三个,甚至更具限制性的含义是,该系统必须是“简单”的。文本编辑器/查看器。通常暗示ASCII编码。但是,实际上,你,人类,阅读文本以某种时髦格式编码并由专有程序显示,与VI文本编辑器读取ASCII编码文件之间存在极小差异。

在编程环境中,您的编程环境(由OS +系统API +您的语言功能进行了编译)定义了一组“文本”和“文本”。字符,以及它能够读取以转换为这些“文本”的一组编码。字符。请注意,这可能不一定意味着ASCII,英文或8位 - 例如,Perl可以原生地读取并使用完整的Unicode字符集“。”

要回答您的具体问题,您绝对可以使用“字符”。用于传输任意字节序列的字符串,但需要注意字符串终止约定。 问题在于已经存在的用于“处理字符数据”的功能。可能没有任何有用的功能来处理你的二进制数据。

一般来说,这取决于语言/环境/功能。

二进制数据始终是:二进制。它是在不进行修改的情况下转移的。

“纯文本”模式可能意味着以下一项或多项:

  • 字节流被分成行。行分隔符为 、 、 或 。有时它与操作系统相关(例如 *nix 喜欢 ,而 windows 喜欢 )。可以针对阅读应用程序调整行尾
  • 字符编码可以调整。环境可能会检测源编码和/或将源编码转换为应用程序期望的编码
  • 可能应该添加一些其他转换到这个列表中,但我现在想不出更多了

技术上没什么。纯文本是二进制数据的一种形式。但是,主要区别在于如何存储值。想想如何存储整数。在二进制数据中,它将使用二进制补码格式,可能占用32位空间。在文本格式中,数字将被存储为一系列unicode数字。因此,数字50将以二进制形式存储为0x32(填充以占用32位),但将以纯文本形式存储为“5”0。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top