检测字符串 C# 中的不可显示字符
Detect non-displayable characters in string C#
希望有人能帮我解决这个问题,因为到目前为止我还没有在网上找到任何解决方案。
我正在处理带有特殊字符的字符串,我想检测字符串中的任何字符是否无法通过网络浏览器或什至 Visual Studio 本身正确显示。以下字符串显示此类字符。这来自VS2019中的Text vizualizer:
TargetsforReduceCO
我查过类似的问题,但答案大多仅限于检查字符代码是否超过255。但是,还有很多字符仍然可以显示,例如希腊和西里尔符号。
我还发现 this 网站概述了所有 Unicode 字符并显示了它们在浏览器中的显示方式,但似乎没有任何字符无法显示的逻辑以及他们的字符代码。
我可以想象 VS 不知道哪些字符不能在各种浏览器中显示,但我希望至少有一种方法可以检查 VS 是否可以显示它们。
在此先感谢您的帮助!
编辑:
目前我正在使用
input.Any(c => !char.IsLetterOrDigit(c) && c > 255);
因为输入通常不应包含您通常可以在文本中找到的其他符号,但我确信它会在 VS 或网络浏览器实际可以显示的符号上触发。
Type char
有许多静态成员方法,如 IsPunctuation()
应该可以帮助您逐字符“分类”。请参阅本页 System.Char reference 上的示例。这些方法的每一个文档都解释了它适用于哪些字符。正如评论者所提到的,您的“可显示”标准与其说是字符值问题,不如说是字体显示问题,但是您可以使用这些方法缩小系统可以使用的范围。留意其他方法,例如 GetUnicodeCategory()
.
可能像 !char.IsControl(c)
这样简单的事情就可以解决问题。
在此处查看类似的问答 C# Printable Characters
希望有人能帮我解决这个问题,因为到目前为止我还没有在网上找到任何解决方案。
我正在处理带有特殊字符的字符串,我想检测字符串中的任何字符是否无法通过网络浏览器或什至 Visual Studio 本身正确显示。以下字符串显示此类字符。这来自VS2019中的Text vizualizer:
TargetsforReduceCO
我查过类似的问题,但答案大多仅限于检查字符代码是否超过255。但是,还有很多字符仍然可以显示,例如希腊和西里尔符号。
我还发现 this 网站概述了所有 Unicode 字符并显示了它们在浏览器中的显示方式,但似乎没有任何字符无法显示的逻辑以及他们的字符代码。
我可以想象 VS 不知道哪些字符不能在各种浏览器中显示,但我希望至少有一种方法可以检查 VS 是否可以显示它们。
在此先感谢您的帮助!
编辑:
目前我正在使用
input.Any(c => !char.IsLetterOrDigit(c) && c > 255);
因为输入通常不应包含您通常可以在文本中找到的其他符号,但我确信它会在 VS 或网络浏览器实际可以显示的符号上触发。
Type char
有许多静态成员方法,如 IsPunctuation()
应该可以帮助您逐字符“分类”。请参阅本页 System.Char reference 上的示例。这些方法的每一个文档都解释了它适用于哪些字符。正如评论者所提到的,您的“可显示”标准与其说是字符值问题,不如说是字体显示问题,但是您可以使用这些方法缩小系统可以使用的范围。留意其他方法,例如 GetUnicodeCategory()
.
可能像 !char.IsControl(c)
这样简单的事情就可以解决问题。
在此处查看类似的问答 C# Printable Characters