检测字符串中的 CJK 字符 (C#)

2023-11-21

我正在使用 iTextSharp 生成一系列 PDF,使用 Open Sans 作为默认字体。有时,姓名会插入 PDF 的内容中。然而我的问题是,我需要插入的一些名称包含 CJK 字符(存储在 SQL Server 中的 nvarchar 列中),并且据我所知 Open Sans 目前不支持 CJK 字符。我需要继续使用 Open Sans 作为默认字体,因此理想情况下,我想尝试检测从数据库抓取的字符串中的 CJK 字符,并在打印这些字符时切换到 CJK 字体。

正则表达式是最好的选择吗?不幸的是,我无法找到任何有助于解决此问题的正则表达式模式。

预先感谢您的任何帮助!


为了防止有人偶然发现这个问题,我找到了另一个使用此处列出的 unicode 块的解决方案(http://msdn.microsoft.com/en-us/library/20bw873z.aspx#SupportedNamedBlocks)在正则表达式中。

var Name = "Joe Bloggs";
var Regex = new Regex(@"\p{IsCJKUnifiedIdeographs}");

if(Regex.IsMatch(Name))
{
    //switch to CJK font
}
else
{
    //keep calm and carry on
}

EDIT:

您可能需要匹配的不仅仅是统一表意文字,请尝试使用它作为正则表达式:

string r = 
@"\p{IsHangulJamo}|"+
@"\p{IsCJKRadicalsSupplement}|"+
@"\p{IsCJKSymbolsandPunctuation}|"+
@"\p{IsEnclosedCJKLettersandMonths}|"+
@"\p{IsCJKCompatibility}|"+
@"\p{IsCJKUnifiedIdeographsExtensionA}|"+
@"\p{IsCJKUnifiedIdeographs}|"+
@"\p{IsHangulSyllables}|"+
@"\p{IsCJKCompatibilityForms}"; 

这适用于我尝试过的所有韩文文本。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

检测字符串中的 CJK 字符 (C#) 的相关文章

随机推荐

  • 使用 apscheduler 构建 Pyinstaller 3.3.1 和 3.4.0-dev

    问候 我正在尝试使用 PyInstaller 进行构建 配置 Python 3 6 5 pip 10 0 1 OS Ubuntu 18 04 Using virtualenv 也尝试过python m venv 我的应用程序使用apsche
  • 通过 Windows Live ID 登录桌面应用程序

    我想为我的桌面应用程序创建一个登录表单 用户可以使用 Windows Live ID 来实现此目的 我创建一个应用程序管理 dev live com并使用桌面实施部分 I use a WebBrowser控制并导航到给定地址 但我不知道如何
  • 如何获取字符串数组中的 Logger 值

    我用的是log4j Logger我已使用以下命令将日志值写入文件中FileAppender 现在我想在文本区域中显示日志值 如何将记录器值分配给字符串数组 您可以添加一个额外的Appender给你的Logger Use a 作家追加者写信给
  • 无法信任 iPhone 上的自签名证书

    我目前正在尝试使用自签名证书连接到服务器 我正在使用 NSURLConnection 连接到服务器 如何确保我只信任正确的服务器并取消所有其他连接 我正在使用以下代码 void connection NSURLConnection conn
  • 选择并分组

    我的查询是这样的 Select a abc a cde a efg a agh c dummy p test max b this sum b sugar sum b bucket sum b something 接下来是一些外连接和内连接
  • TPL 数据流:有限容量并等待完成

    为了简单起见 下面我将现实生活中的场景复制为 LINQPad 脚本 var total 1 1000 1000 var cts new CancellationTokenSource var threads Environment Proc
  • weblogic增加内存的方法

    我需要增加 weblogic 的内存 我是这方面的新手 我不知道如何 我需要设置 Xss 4096k 我怎样才能做到呢 Xss是Thread Stack Size 不是内存大小 您可以通过更改参数 Xmx 来更改内存大小 最重要的参数是 X
  • 在 ASP.NET Core 中使用源自 Microsoft.AspNet.Web.Optimization (.net-framework) 的“脚本”和“样式”

    我有一个简单的 ASP NET MVC 项目 需要将其移植到 ASP NET Core 在视图 cshtml 中我发现了类似的元素 Styles Render or Scripts Render Styles Render Content
  • 如何在 Google 电子表格上列出 Google 云端硬盘文件夹中的所有文件

    我有一个包含超过 2000 个文件的文件夹 我需要在谷歌电子表格上列出所有这些文件 我在网上找到了一些脚本 但它们并没有完全工作 当我点击 RUN 时 我只得到 250 个文件的列表 在 Google 开发者页面上阅读时 我发现了一些有关启
  • 具有两个标题行的表排序器

    我正在使用表排序器 jquery 插件我的表格标题中有两行 有什么方法可以在我的表上启用排序吗 它应该能够按第二个标题行排序 第一个标题行只是按日期对相关数据进行分组 如果使用此插件不可能做到这一点 也许有人有解决方法的建议 这是我的表格标
  • SQL Server 上的 varbinary 到 string

    如何将列值转换为varbinary max to varchar以人类可读的形式 以下表达式对我有用 SELECT CONVERT VARCHAR 1000 varbinary value 2 Here有关样式选择的更多详细信息 第三个参数
  • 检查是否从 iOS 设备访问 PHP 页面

    我有一个简单的 PHP 网页 并且希望返回不同的内容 具体取决于它是从 iPhone iPad 还是从网络浏览器访问 我怎样才能做到这一点 使用来自的用户代理 SERVER HTTP USER AGENT 对于简单的检测 您可以使用this
  • 如何检查网站上的值是否已更改

    基本上 如果网站上的值发生变化 我会尝试运行一些代码 Python 3 2 否则稍等一下 稍后再检查 首先 我认为我可以将值保存在变量中 并将其与下次运行脚本时获取的新值进行比较 但这很快就遇到了问题 因为当脚本再次运行并初始化该变量时 该
  • jquery ctrl+enter 作为在文本区域中输入

    I am trying to reproduce standard instant messenger behavior on TEXT area control enter works as send button ctrl enter
  • 如何在不使用更新数据库的情况下生成启用了迁移的 EF6 数据库?

    在 EF5 中 我依赖于这样一个事实 我可以使用以下命令从模型重新创建数据库Database CreateIfNotExists 我会根据需要生成迁移 但永远不会将它们签入源代码管理 因为它们往往是开发周期的工件 然后每个开发人员都会根据需
  • iTextSharp - 在电子邮件附件中发送内存中的 pdf

    我在这里问了几个问题 但仍然遇到问题 如果您能告诉我我的代码中做错了什么 我将不胜感激 我从 ASP Net 页面运行上面的代码并得到 无法访问关闭的流 var doc new Document MemoryStream memoryStr
  • 字符串数组长度显示为 1,即使调用后数组为空,用逗号 (,) 分割 [重复]

    这个问题在这里已经有答案了 这是我的代码 serialNumbers String serialArray serialNumbers split int arrayLength serialArray length 即使serialArr
  • 我可以观看另一个班级的 NSNotification 吗?

    我正在尝试了解 NSNotificationCenter 如果我的应用程序代理中有这样的内容 NSNotificationCenter defaultCenter addObserver self selector selector som
  • shell 中的浮点比较

    您能否向我建议在 Bash 脚本中进行浮点比较的语法 我理想地希望将其用作if陈述 这是一个小代码片段 key1 12 3 result 12 2 if result lt key1 then some code here fi bc是你的
  • 检测字符串中的 CJK 字符 (C#)

    我正在使用 iTextSharp 生成一系列 PDF 使用 Open Sans 作为默认字体 有时 姓名会插入 PDF 的内容中 然而我的问题是 我需要插入的一些名称包含 CJK 字符 存储在 SQL Server 中的 nvarchar