Encoding.UTF8.GetBytes()会创建BOM吗?

时间:2017-10-26 13:05:48

标签: c# encoding byte-order-mark

我正在发出HTTP POST请求:

<property name="hibernate.connection.driver_class">org.hsqldb.jdbcDriver</property>

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

在这种情况下,上行和下行之间是否存在差异?

GetBytes()

我自己测试过几次,但仍然不确定100%,所以问这里。

1 个答案:

答案 0 :(得分:4)

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

有关详细信息,请参阅Microsoft Documentation上的详尽备注部分。