gpt4 book ai didi

c# - UTF8编码不加字节序标记

转载 作者:行者123 更新时间:2023-11-30 14:29:15 26 4
gpt4 key购买 nike

我们知道 UTF8Encoding 类的构造函数可以接收一个可选参数:一个 bool 指定编码器是否应提供字节顺序标记 (BOM)。

但是,当使用两种方法对相同的文本进行编码时,输出是相同的:

string text = "Hello, world!";
byte[] withBom= new UTF8Encoding(true).GetBytes(text);
byte[] withoutBom = new UTF8Encoding(false).GetBytes(text);

withBomwithoutBom的内容是一样的,一个字节都不比另一个多一个字节。

为什么会这样?为什么没有将字节顺序标记添加到 withBom

最佳答案

构造函数中的 BOM 参数不影响 GetBytes 的结果, 它会影响 GetPreamble 的结果.用户应手动附加它。

byte[] bom = new UTF8Encoding(true).GetPreamble(); // 3 bytes
byte[] noBom = new UTF8Encoding(false).GetPreamble(); // 0 bytes

关于c# - UTF8编码不加字节序标记,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26616249/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com