今天我看到一个代码,里面用了UTF8Encoding.UTF8.GetBytes和Encoding.UTF8.GetBytes,有什么区别吗?
UTF8Encoding.UTF8.GetBytes
Encoding.UTF8.GetBytes
vhmi4jdf1#
一点区别都没有。就是 *来自MSDN(Encoding.UTF8):此属性返回UTF8Encoding对象您可以简单地调用UTF8Encoding.GetBytes来代替Encoding.UTF8.GetBytes。
Encoding.UTF8
UTF8Encoding.GetBytes
wkyowqbh2#
至少有一点不同。Encoding.UTF8将写入BOM,而UTF8Encoding不会(默认情况下)。检查以下内容:
using System; using System.Text; class UTF8EncodingExample { public static void Main() { UTF8Encoding utf8 = new UTF8Encoding(); UTF8Encoding utf8EmitBOM = new UTF8Encoding(true); Console.WriteLine("utf8 preamble:"); ShowArray(utf8.GetPreamble()); Console.WriteLine("utf8EmitBOM:"); ShowArray(utf8EmitBOM.GetPreamble()); Console.WriteLine("Encoding.UTF8 preamble:"); ShowArray(Encoding.UTF8.GetPreamble()); } public static void ShowArray(Array theArray) { foreach (Object o in theArray) { Console.Write("[{0}]", o); } Console.WriteLine(); } }
ergxz8rk3#
UTF8Encoding从Encoding继承了它的静态UTF8属性,因此它们实际上是相同的属性。
w8f9ii694#
这只是访问UTF8Encoding类并调用其静态成员GetBytes的两种不同方法。
UTF8Encoding
GetBytes
4条答案
按热度按时间vhmi4jdf1#
一点区别都没有。
就是 *
来自MSDN(
Encoding.UTF8
):此属性返回UTF8Encoding对象
您可以简单地调用
UTF8Encoding.GetBytes
来代替Encoding.UTF8.GetBytes
。wkyowqbh2#
至少有一点不同。Encoding.UTF8将写入BOM,而UTF8Encoding不会(默认情况下)。检查以下内容:
ergxz8rk3#
UTF8Encoding从Encoding继承了它的静态UTF8属性,因此它们实际上是相同的属性。
w8f9ii694#
这只是访问
UTF8Encoding
类并调用其静态成员GetBytes
的两种不同方法。