文字列エンコードの正確な判断は、異なるソースからのテキストデータを処理するために重要です。この記事では、C#でこの目標を効率的に達成する方法について説明します。
明示的な宣言なしに文字列のエンコードを決定する方法はいくつかあります:
によって提供されるコードは、3つの方法すべてを組み合わせて、文字列のエンコードを決定します。最初はBOM検出です。 BOMが見つからない場合、コードは検出器を使用して、UTF-8やUTF-16などの一般的なエンコーディングをヒューリスティックに識別します。最後に、適切なエンコードが見つからない場合、システムのデフォルトコードページに戻ります。
このコードは、エンコードを検出するだけでなく、デコードされたテキストを返して、必要な情報を完全に提供します。
次のC#コードがこのソリューションを実装しています:
public Encoding detectTextEncoding(string filename, out String text, int taster = 1000)
{
// 检查BOM
// 为简洁起见省略
// 基于探测器的编码检测
bool utf8 = false;
int i = 0;
while (i
このコードを使用するには、ファイルパスを文字列として提供し、検出されたエンコードおよびデコードされたテキストを出力パラメーターとして取得します。これが例です:
`` c# 文字列テキスト; エンコードencoding = detectTextEncoding( "my_file.txt"、out text); console.writeLine( "検出されたエンコード:" encoding.encodingName); console.writeline( "デコードされたテキスト:"テキスト); `` `全体として、このコードは、C#の文字列のエンコードを決定する強力な方法を提供し、BOMおよびヒューリスティックチェックを活用して正確な検出を確保します。
免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。
Copyright© 2022 湘ICP备2022001581号-3