2

C#/asp.net で次のことを行う最善の方法は何ですか? - ファイルが確実に UTF8 であるかどうかを検出します。- 入力ストリームまたはディスク上のファイルのみをプログラムで UTF8 に変換します。

乾杯アスカー

4

1 に答える 1

5

ストリームが UTF8 かどうかを確認するには、http: //utf8checker.codeplex.com/を参照してください。

それを変換するには、StreamReader を使用できます。

new StreamReader(stream, Encoding.UTF8)) 

実際、このコンストラクターを使用すると、以前のチェックが妨げられ、そのまま使用できます。

MSDN:

文字エンコーディングは encoding パラメータによって設定され、バッファ サイズは 1024 バイトに設定されます。StreamReader オブジェクトは、ストリームの最初の 3 バイトを調べてエンコードを検出しようとします。ファイルが適切なバイト オーダー マークで始まる場合、UTF-8、リトル エンディアン Unicode、およびビッグ エンディアン Unicode テキストを自動的に認識します。それ以外の場合は、ユーザー提供のエンコーディングが使用されます。詳細については、Encoding.GetPreamble メソッドを参照してください。

リトル エンディアン Unicode とビッグ エンディアン Unicode を検出したくない場合は、次のコンストラクターを呼び出します。

new StreamReader(stream, Encoding.UTF8, false)) 

falseエンコーディング検出をオフにするため、この呼び出しは常に UTF 8 を使用してファイルをエンコードします。

于 2013-08-26T08:07:58.963 に答える