UTF8Encoding
を使用して、Unicode バイト オーダー マークを提供しないインスタンスを作成できることはわかっていますUTF8Encoding(false)
。しかし、UTF8Encoding
インスタンスへの参照を取得する別の方法も見つけましたEncoding.UTF8
。問題は、静的Encoding.UTF8
インスタンスの提供 BOM プロパティを false に設定できるか、それとも常に BOM を提供するかということです。
1 に答える
2
Encoding.UTF8は、静的なデフォルトのインスタンスを返します。これには、常にBOMが含まれます。
[__DynamicallyInvokable]
public static Encoding UTF8
{
[TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries"), __DynamicallyInvokable] get
{
if (Encoding.utf8Encoding == null)
Encoding.utf8Encoding = (Encoding) new UTF8Encoding(true);
return Encoding.utf8Encoding;
}
}
フラグはプライベートブールフィールドに格納されていることに注意してください。これは、リフレクションを介してfalseに設定できる可能性がありますが、いくつかの理由からお勧めできません。
于 2013-03-18T15:28:57.540 に答える