我在其他地方读过一个关于为什么字节顺序在 utf-8 中不重要的问题。
对我来说,tldr;这并不重要,因为 utf-8 强制您将相同的数字写入内存,这些数字是代码的每个字节。
我想出了这个:
某些字符可能具有代码
11100010 10000010 10101100
,并且在任何计算机中都会以相同的方式表示,这是因为 utf8 指示如何对字符进行编码。
这些字节中的每一个都将被一一读取(如解码过程所示。),因此,再一次,没有歧义。
当第一个字节以
111
开头时,他们必须搜索 3 个字节,然后用它来查找/检索字符串。这就是读取多字节字符的方式。
这是正确的解释吗?如果您不同意,为什么以及正确的理由是什么?
我不太明白你要问的问题,所以这可能不是你正在寻找的答案。
仅当您处理大于单个字节的整数原语时,字节顺序才重要。例如,如果您将数字 5 存储为 16 位值,那么它自然会存储为
00000000 00000101
在大端(例如 ARM)硬件上。而在小端(例如 x86)硬件上,它将存储为
00000101 00000000
由于 UTF-8 完全由字节流组成,因此从不考虑字节顺序。是的,有些代码点需要多个字节来表示,但这些代码点的读写仍然需要一次一个字节地完成。这些字节的顺序已明确定义,硬件的字节顺序并不重要。