我想在C#中检查一个字符是否包含非ASCII字符。最好的方法是如何检查特殊字符,比如志
或Ω
?
志
或Ω
是最好的方式?我想在C#中检查一个字符是否包含非ASCII字符。最好的方法是如何检查特殊字符,比如志
或Ω
?
志
或Ω
是最好的方式?ASCII编码范围从0到127,因此只需检查该范围:
char c = 'a';//or whatever char you have
bool isAscii = c < 128;
bool isAscii = c <= sbyte.MaxValue;
。 - Jeppe Stig Nielsenbool 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);