2
abc = Encoding.GetEncoding("xyz"); //Throws exception if xyz non existing.

エンコーディングを試す方法はありますか、それとも例外をキャッチする必要がありますか?

4

2 に答える 2

4

Encoding.GetEncodings最初に使用してから、名前に一致するものを見つけようとすることができます:

var encodingInfo = Encoding.GetEncodings()
                           .FirstOrDefault(info => info.Name == targetName);

if (encodingInfo != null)
{
    Encoding encoding = encodingInfo.GetEncoding();
    ...
}
else
{
    ...
}

これを定期的に行う場合は、名前/エンコーディングの辞書を一度作成TryGetValueしてから、代わりに使用することをお勧めします。

于 2012-10-17T17:32:17.283 に答える
2

メソッドを使用できますEncoding.GetEncodings()。このメソッドは、使用可能なすべてのエンコーディングを返します。その後、返された配列でエンコーディングを検索できます。

于 2012-10-17T17:34:44.140 に答える