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 回答