如何确定字母是否在AZ或数字0-9的范围内?我们收到了一些损坏的数据"I_999Š=ÄÖÆaðøñòòñ".
我以为我可以使用Char.IsLetterOrDigit("Š")来识别来自"I_999Š"的损坏数据,但是意外地返回true.我需要陷入这个,任何想法?
我不禁注意到每个人似乎都错过了真正的问题:你的数据"损坏"似乎是一个明显的字符编码问题.因此,无论您如何处理数据,您都会(错误地)处理症状并忽略根本原因.
具体来说,您似乎试图将收到的二进制BYTES解释为ASCII文本,而那些BYTES几乎肯定是为了表示编码为ASCII以外的其他文本.
您应该找出哪些字符编码适用于您收到的文本字符串.然后,您应该在应用适当的字符编码转换时读取该数据.
你应该阅读Joel Spolsky的文章,该文章强调"没有像纯文本那样的东西".
那么有两种快速选择.第一种是使用正则表达式,第二种是使用Asc()函数来确定Ascii值是否在这些允许字符的范围内.我个人会使用Asc()来实现这个目的.