テキストファイルのエンコーディングスキーマを検出できるメソッドを作成しようとしています。私はそこに多くがあることを知っていますが、確かに自分のテキストファイルがASCII
,UTF-8
、またはUTF-16
のいずれかであることがわかります。私はこれらの3つを検出する必要があります。誰でもこれを行う方法を知っていますか?テキストファイルのエンコーディングスキーマを確認する
2
A
答えて
1
StreamReaderを使用してエンコードを識別します。
例:
using(var r = new StreamReader(filename, Encoding.Default))
{
richtextBox1.Text = r.ReadToEnd();
var encoding = r.CurrentEncoding;
}
4
まず、バイナリモードでファイルを開いて、それをメモリに読み込みます。
UTF-8(またはASCII)の場合、検証チェックを行います。 Encoding.GetEncoding("UTF-8", EncoderFallback.ExceptionFallback, DecoderFallback.ExceptionFallback).GetString(bytes)
を使用してテキストをデコードし、例外をキャッチできます。取得しない場合、データは有効なUTF-8です。 UTF-16の場合
private bool detectUTF8Encoding(string filename)
{
byte[] bytes = File.ReadAllBytes(filename);
try {
Encoding.GetEncoding("UTF-8", EncoderFallback.ExceptionFallback, DecoderFallback.ExceptionFallback).GetString(bytes);
return true;
} catch {
return false;
}
}
、BOM(バイトオーダーに応じて、FE FF
またはFF FE
、)を確認してください:ここではコードです。
関連する問題
- 1. Python:テキストファイル内のngramsの行数を確認する
- 2. リストとテキストファイルの内容を確認する<string>
- 3. テキストファイルが存在するか確認する
- 4. テキストファイルの形式を確認していますか?
- 5. テキストファイルがgeditで開いているかどうかを確認する方法
- 6. mysqlのデータを確認するマルチテーブルを確認する
- 7. クレジットカードの確認と確認
- 8. を確認する
- 9. 未確認/未確認キャスト
- 10. Internet Explorerの「常に新しいページを確認する」を確認する
- 11. クライアントからのアプリ購入確認で確認する
- 12. メモリリークを確認する
- 13. Javascriptを確認するエラー
- 14. jQueryカスタムメッセージを確認する
- 15. $ _POSTデータを確認する
- 16. Mockito - スタブを確認する
- 17. ドメインを確認する
- 18. カスタムルールを確認する
- 19. シンボリックリンクを確認する
- 20. Djangoファイルパターンを確認する
- 21. IE 10を確認する
- 22. django - データを確認する
- 23. ドメイン名を確認する
- 24. 偽装を確認する
- 25. websphereクラスパスを確認する
- 26. Ajaxリクエストを確認する
- 27. クライアントIDを確認する
- 28. gstreamerデコードビットレートを確認する
- 29. ログファイルを確認するスクリプト
- 30. null DataRowを確認する
BOM(バイトオーダーマーク)があるかどうか知っていますか?そうであれば、それを使って型を決定することができます。 – alexn
ASCIIは無視しても問題ありません。任意の有効なASCIIファイルは、常に有効なUTF-8ファイルです(ASCIIの正しい7ビット定義を使用していると仮定します)。 – Douglas
BOMがない場合はSOLです。 –