Encoding ASCII字符集endian是否安全?

Encoding ASCII字符集endian是否安全?,encoding,utf-8,character-encoding,ascii,Encoding,Utf 8,Character Encoding,Ascii,我在做数学运算,如果我将二进制表示(二进制模式下的二进制文件)中的每一位信息(变量的内容)始终保持在1字节以下或等于1字节,那么无论平台上实现的是什么endianess,我都是安全的,这意味着ASCII字符集定义上是endian安全的或双endian的,因为它提供了2^8个排列? 因此,我假设UTF-8不是双端的。端性是指字节顺序,即多字节序列的字节出现的顺序 对于ASCII,它是没有意义的,因为没有多字节序列 对于UTF-8,UTF-8标准已经精确而明确地定义了其所有多字节序列中的字节顺序。因

我在做数学运算,如果我将二进制表示(二进制模式下的二进制文件)中的每一位信息(变量的内容)始终保持在1字节以下或等于1字节,那么无论平台上实现的是什么endianess,我都是安全的,这意味着ASCII字符集定义上是endian安全的或双endian的,因为它提供了2^8个排列?
因此,我假设UTF-8不是双端的。

端性是指字节顺序,即多字节序列的字节出现的顺序

对于ASCII,它是没有意义的,因为没有多字节序列


对于UTF-8,UTF-8标准已经精确而明确地定义了其所有多字节序列中的字节顺序。因此需要一个额外的规则(如大端或小端)来指定或澄清这个顺序。所以也不适用。

Endianness指字节顺序,即多字节序列中字节的出现顺序

对于ASCII,它是没有意义的,因为没有多字节序列


对于UTF-8,UTF-8标准已经精确而明确地定义了其所有多字节序列中的字节顺序。因此需要一个额外的规则(如大端或小端)来指定或澄清这个顺序。所以也不适用。

未为一个字节定义Endianness。UTF-8既可以是小端也可以是大端(就像任何其他Unicode编码一样)。utf-8编码字符串是一个字节序列,不受尾数的影响@H2CO3可以,但我的重点是安全性,如果我有一个ASCII字符,我可以假设字符总是正确复制的,使用UTF8我应该关心UTF字符集的实现。@PascalCuoq任何UTF8实现都不仅仅是一个字符集,UTF8还包含有关文本流的信息,我不确定UTF8是否与UTF8标准的任何其他实现一样安全,而且ASCII只是一个具有字形字符关联的表,没有什么特别的,它非常简单。@user2384250“我不确定UTF8是否与UTF8标准的任何其他实现一样安全”是什么意思?无论如何,冒着任何重复我自己的风险,utf-8编码的字符串是一个字节序列。阅读我提供的链接。第一句话是“到1992年初,已经开始搜索多字节字符集的良好字节流编码”。猜猜故事将如何结束?Endianness不是为一个字节定义的。UTF-8既可以是小端也可以是大端(就像任何其他Unicode编码一样)。utf-8编码字符串是一个字节序列,不受尾数的影响@H2CO3可以,但我的重点是安全性,如果我有一个ASCII字符,我可以假设字符总是正确复制的,使用UTF8我应该关心UTF字符集的实现。@PascalCuoq任何UTF8实现都不仅仅是一个字符集,UTF8还包含有关文本流的信息,我不确定UTF8是否与UTF8标准的任何其他实现一样安全,而且ASCII只是一个具有字形字符关联的表,没有什么特别的,它非常简单。@user2384250“我不确定UTF8是否与UTF8标准的任何其他实现一样安全”是什么意思?无论如何,冒着任何重复我自己的风险,utf-8编码的字符串是一个字节序列。阅读我提供的链接。第一句话是“到1992年初,已经开始搜索多字节字符集的良好字节流编码”。猜猜故事将如何结束?所以UTF8无论如何都是安全的?而UTF-16?UTF-16使用固定大小(16位)的多字节代码单元,因此,如果适用,可以使用endianness的概念。可悲的是,Unicode联盟选择不强制标准使用一种或另一种端点,因此我们只剩下UTF-16的两个“变体”。这只是其中一个原因。另一个应该避免的主要原因是它是一种“两全其美”的编码:它是一种可变长度编码(不同于UTF-32/UCS-4,当您需要固定长度的代码单元时应该使用它)和ASCII不兼容(不同于UTF-8,您应该在几乎所有其他情况下都使用它).那么UTF8无论如何都是安全的?而UTF-16?UTF-16使用固定大小(16位)的多字节代码单元,因此,如果适用,可以使用endianness的概念。可悲的是,Unicode联盟选择不强制标准使用一种或另一种端点,因此我们只剩下UTF-16的两个“变体”。这只是其中一个原因。另一个应该避免的主要原因是它是一种“两全其美”的编码:它是一种可变长度编码(不同于UTF-32/UCS-4,当您需要固定长度的代码单元时应该使用它)和ASCII不兼容(不同于UTF-8,在几乎所有其他情况下都应该使用它)。