Encoding.UTF8.GetBytes()是否创建BOM?

Jen*_*nix 5 c# encoding byte-order-mark

我正在与此发出HTTP POST请求:

byte[] postBuffer = Encoding.UTF8.GetBytes(postStr);
Run Code Online (Sandbox Code Playgroud)

到目前为止,这似乎工作正常,但是我不确定这是否将一直有效,因为Encoding.UTF8表示具有BOM的UTF8。当我使用创建本地文件时StreamWriter,请始终使用与新UTF8Encoding(false)相同的默认编码来编写WITHOUT BOM。所以想知道调用GetBytes()方法是否同样如此。

在这种情况下,上下行之间没有任何区别吗?

byte[] postBuffer = new UTF8Encoding().GetBytes(postStr);
Run Code Online (Sandbox Code Playgroud)

我自己进行了几次测试,但仍不确定100%,因此在这里询问。

Mar*_*rkO 5

GetBytes方法从不返回以 BOM 开头的字节流。可以使用该GetPreAmble方法检索 BOM,当编码器实例化为 false 时,该方法不返回任何内容。

有关更多详细信息,请参阅Microsoft 文档中的详细备注部分。