今天我看到了一个使用UTF8Encoding.UTF8.GetBytes
和Encoding.UTF8.GetBytes
的代码。它们之间有什么区别吗?
答案 0 :(得分:11)
完全没有区别。
Encoding.UTF8
UTF8Encoding
。
来自MSDN(Encoding.UTF8
):
此属性返回UTF8Encoding对象
您只需拨打UTF8Encoding.UTF8.GetBytes
。
UTF8Encoding.GetBytes
答案 1 :(得分:7)
至少有一个区别。 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();
}
}
答案 2 :(得分:6)
UTF8Encoding从Encoding继承其静态UTF8属性,因此它们实际上是相同的属性。
答案 3 :(得分:3)
这只是访问UTF8Encoding
类并调用其静态成员GetBytes
的两种不同方式。