检查编码是否存在?

时间:2012-10-17 17:29:59

标签: .net character-encoding

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

有没有办法尝试编码,还是必须捕获异常?

2 个答案:

答案 0 :(得分:3)

您可以先使用Encoding.GetEncodings,然后尝试找到与名称相匹配的一个:

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

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

如果您经常这样做,您可能希望建立一次名称/编码字典,然后使用TryGetValue代替。

答案 1 :(得分:1)

您可以使用Encoding.GetEncodings()方法。该方法返回所有可用的编码。然后,您可以在返回的数组中查找编码。