UTF-8可以包含BOM.但是,它对字节流的字节顺序没有影响.UTF-8始终具有相同的字节顺序.
如果Utf-8将所有代码点存储在单个字节中,那么为什么字节顺序不起任何作用BOM是有道理的,因此不需要为什么.但是,由于代码点128及以上使用2,3和最多6个字节存储,这意味着它们在大端机器上的字节顺序与小端机器上的字节顺序不同,那么我们如何声称Utf-8总是具有相同的字节顺序?
谢谢
编辑:
UTF-8是面向字节的
据我所知,如果两个字节UTF-8字符C由字节B1和B2组成(其中B1第一个字节B2是最后一个字节),那么UTF-8这两个字节总是以相同的顺序写入(因此如果将此字符写入小端机器上的文件LEM,B1将是第一个也是B2最后一个.同样,如果C写入大端机器上的文件BEM,B1仍将是第一个B2仍然是最后一个).
但是,当发生了什么C写入到文件F上LEM,但我们复制F到BEM设法在那里读了吗?由于BEM自动交换字节(B1现在是最后B2一个字节和第一个字节),app(运行BEM)读取如何F知道是否创建了F BEM,因此没有交换两个字节的顺序或是否F从中转移LEM,在这种情况下BEM自动交换字节?
我希望问题有道理
编辑2:
响应您的编辑:如果要求大端机器一次读取一个字节,则不会交换字节.
a)哦,所以即使字符C是2个字节长,app(驻留在BEM上)读取F会在当时只读一个字节读入存储器(因此它将首先读入存储器B1,然后才读入B2 …