4

我有这个代码在桌面应用程序中工作,但它在 Windows 8 Store 应用程序中不起作用,因为 System.Text 不再ASCIIEncoding支持:

tagdata是一个byte array

ASCIIEncoding.ASCII.GetString(tagdata).Trim();

我应该使用 UT8Encoding 吗?我只想将字节数组转换为ASCII文本。

谢谢你。

4

1 回答 1

10

首先,我建议使用Encoding.ASCII到处而不是ASCIIEncoding.ASCII- 后者在某种程度上暗示该ASCII属性是ASCIIEncoding该类的成员,但事实并非如此。

如果您知道您的字节数组只是ASCII 文本,那么您可以Encoding.UTF8自由使用,因为 ASCII 中存在的每个字符在 UTF-8 和 ASCII 中都以相同的方式表示。

如果要先检查有效性,只需要检查数组中的每个字节是否小于 128

bool isAscii = tagData.All(b => b < 128);
于 2013-01-30T06:50:52.720 回答