我在桌面应用中编写的代码可以正常工作,但在Windows 8商店应用中无法工作,因为System.Text不再支持ASCIIEncoding
:
tagdata
是一个byte数组
。
ASCIIEncoding.ASCII.GetString(tagdata).Trim();
我应该使用UTF8编码吗?我只想将字节数组转换为ASCII文本。
谢谢。
我在桌面应用中编写的代码可以正常工作,但在Windows 8商店应用中无法工作,因为System.Text不再支持ASCIIEncoding
:
tagdata
是一个byte数组
。
ASCIIEncoding.ASCII.GetString(tagdata).Trim();
首先,我建议您在所有地方都使用 Encoding.ASCII
而不是 ASCIIEncoding.ASCII
- 后者有些暗示了 ASCII
属性是 ASCIIEncoding
类的成员,但实际上并不是。
如果你知道你的字节数组只包含 ASCII 文本,则可以自由地使用 Encoding.UTF8
,因为 ASCII 中的每个字符在 UTF-8 和 ASCII 中的表示方式是相同的。
如果您想要先检查有效性,则只需检查数组中的每个字节是否小于 128 即可。
bool isAscii = tagData.All(b => b < 128);