abc = Encoding.GetEncoding("xyz"); //Throws exception if xyz non existing.
有没有办法尝试编码,还是必须捕获异常?
答案 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()
方法。该方法返回所有可用的编码。然后,您可以在返回的数组中查找编码。