我有一个字符串,我想知道它里面是否有Unicode字符. (其是否完全包含ASCII)

我怎样才能做到这一点?

谢谢

推荐答案

如果我的假设是正确的,您希望知道您的字符串是否包含任何"非ANSI"字符.您可以按如下方式导出它.

    public void test()
    {
        const string WithUnicodeCharacter = "a hebrew character:\uFB2F";
        const string WithoutUnicodeCharacter = "an ANSI character:Æ";

        bool hasUnicode;

        //true
        hasUnicode = ContainsUnicodeCharacter(WithUnicodeCharacter);
        Console.WriteLine(hasUnicode);

        //false
        hasUnicode = ContainsUnicodeCharacter(WithoutUnicodeCharacter);
        Console.WriteLine(hasUnicode);
    }

    public bool ContainsUnicodeCharacter(string input)
    {
        const int MaxAnsiCode = 255;

        return input.Any(c => c > MaxAnsiCode);
    }

Update

这将检测扩展ASCII.如果只检测真正的ASCII字符范围(最多127个),那么对于不表示Unicode的扩展ASCII字符,可能会出现误报.我在样本中已经提到了这一点.

Asp.net相关问答推荐

在具有多个项目(API/服务/数据等)的解决方案中编写 SignalR 服务的最佳方法是什么?

如何防止 IISExpress 和我的网站文件夹弄乱我的文档文件夹?

我可以将图像添加到 ASP.NET 按钮吗?

HttpRuntime.Cache[] 与 Application[]

业务逻辑中的实体框架最佳实践?

ASP.NET Response.Redirect 使用 302 而不是 301

如何从以特定名称开头的 appsettings 键中获取所有值并将其传递给任何数组?

如何判断一个IP地址是否是私有的?

不支持关键字:服务器

ASP.NET 在更新面板更新时显示正在加载...消息

ASP.NET 日期时间 Select 器

如何使用 asp.net 获取 html Select 的选定值

如何设置默认页面 asp.net

用于验证的数据注释,至少一个必填字段?

我的 asp.net mvc Web 应用程序中的 OutputCache 设置.防止缓存的多种语法

.NET AJAX 调用 ASMX 或 ASPX 或 ASHX?

WebForm_PostBackOptions 文档

VS2017 无法加载文件或程序集 Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll 或其依赖项之一

不同域的登录页面

服务器标签格式不正确错误