Encoding.UTF8.GetBytes() 是否创建 BOM?
Does Encoding.UTF8.GetBytes() create a BOM?
我正在使用此发出 HTTP POST 请求:
byte[] postBuffer = Encoding.UTF8.GetBytes(postStr);
到目前为止,这似乎工作正常,但我不确定这是否会一直有效,因为 Encoding.UTF8 表示 UTF8 WITH BOM。当我使用 StreamWriter
创建本地文件时,始终使用与 new UTF8Encoding(false) 相同的默认编码,以便在没有 BOM 的情况下写入。所以想知道调用 GetBytes()
方法是否也是如此。
这样的话,上下行没有区别吗?
byte[] postBuffer = new UTF8Encoding().GetBytes(postStr);
我自己测试了几次,还是不能100%确定,所以来这里问一下。
GetBytes
方法从不returns 以 BOM 开头的字节流。
可以使用 GetPreAmble
方法检索 BOM,当编码器实例化为 false 时 returns 什么都没有。
有关详细信息,请参阅 Microsoft Documentation 上的详尽备注部分。
我正在使用此发出 HTTP POST 请求:
byte[] postBuffer = Encoding.UTF8.GetBytes(postStr);
到目前为止,这似乎工作正常,但我不确定这是否会一直有效,因为 Encoding.UTF8 表示 UTF8 WITH BOM。当我使用 StreamWriter
创建本地文件时,始终使用与 new UTF8Encoding(false) 相同的默认编码,以便在没有 BOM 的情况下写入。所以想知道调用 GetBytes()
方法是否也是如此。
这样的话,上下行没有区别吗?
byte[] postBuffer = new UTF8Encoding().GetBytes(postStr);
我自己测试了几次,还是不能100%确定,所以来这里问一下。
GetBytes
方法从不returns 以 BOM 开头的字节流。
可以使用 GetPreAmble
方法检索 BOM,当编码器实例化为 false 时 returns 什么都没有。
有关详细信息,请参阅 Microsoft Documentation 上的详尽备注部分。