gpt4 book ai didi

c# - 检查 8 位字符是否为字母数字

转载 作者:行者123 更新时间:2023-12-04 16:36:38 24 4
gpt4 key购买 nike

此 C# 代码将返回意外结果:

char x = Convert.ToChar(0xff);
Console.WriteLine( Char.IsLetterOrDigit(x));

如果我希望得到 False,它会打印 True。我假设这是因为 IsLetterOrDigit 需要一个 Unicode 字符作为输入,而不是我从中转换而来的扩展 ascii 值。

我怎样才能使这项工作?我正在从串行端口读取一个连续的二进制字符串,其中有问题的字符需要被删除以进行报告。

最佳答案

Char 总是 represents一个 Unicode UTF-16 字符。

您需要指定您使用的是哪个 8 位代码页。例如,OEM US 437 Encoding在代码点 #255 处有一个非字母/数字字符:

int codePage = 437;

var encoding = Encoding.GetEncoding(codePage);
char x = encoding.GetChars(new byte[] { 0xFF })[0];
Console.WriteLine(Char.IsLetterOrDigit(x)); // False

关于c# - 检查 8 位字符是否为字母数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69102285/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com