在C#中,如何检测字符是否为非ASCII字符

本文关键字:字符 是否 ASCII 检测 何检测 | 更新日期: 2023-09-27 18:30:06

我想在C#中检查一个字符是否包含非ASCII字符。检查特殊字符(如Ω)的最佳方法是什么?

在C#中,如何检测字符是否为非ASCII字符

ASCII的范围从0到127,所以只需检查该范围:

char c = 'a';//or whatever char you have
bool isAscii = c < 128;
bool HasNonASCIIChars(string str)
{
    return (System.Text.Encoding.UTF8.GetByteCount(str) != str.Length);
}

以防万一有人碰到这个。在dotNET6中,有一种新方法可以检查字符是否为ASCII字符或

public static bool IsAscii (char c);

为了解决这个问题,你可以写

var containsOnlyAscii = str.All(char.IsAscii);

使用LINQ All方法。


一般来说,您可以使用这种新方法来检查单个字符

var isAscii = char.IsAscii(c);