我可以检测文本中的非日文汉字吗

Posted

技术标签:

【中文标题】我可以检测文本中的非日文汉字吗【英文标题】:Can I detect non-japanese chinese characters in text 【发布时间】:2014-09-18 21:30:57 【问题描述】:

我有一些文本是日文的,但其中混入了一些非日文汉字。我注意到它是因为我使用的日文字体不支持它们,并且浏览器使用不同的字体呈现它们。据我所见,这些字符在日语中没有使用,所以它们是错误地到达那里的(文本来自 OCR)。我使用this 在文本中查找汉字,但它似乎连接了所有汉字,而不仅仅是汉字。有没有可靠的方法来检测那些非日语字符,比如检查 unicode 的某些部分?

我能想到的唯一解决方案是制作一个完整的(或者更像是找到一个)正在使用的汉字列表,并检查每个字符是否在列表中,但我怀疑它可能有点慢。尽管如此,如果我找不到更好的方法来实现这一点,我可能会以这种方式解决它。

【问题讨论】:

【参考方案1】:

有没有可靠的方法来检测那些非日语字符,比如检查 unicode 的某些部分?

没有。您需要简单地枚举所有日文字符,例如查找您的字体支持的所有字符:Finding out what characters a font supports

(...)检查每个字符是否在列表中,但我怀疑它可能有点慢。

不要使用列表,使用哈希集。如果您真的想要一个列表,请对其进行排序并使用二进制搜索。那应该不会太慢。

【讨论】:

以上是关于我可以检测文本中的非日文汉字吗的主要内容,如果未能解决你的问题,请参考以下文章

汉字在unicode中的位置

简体生僻汉字大全21418个-GBK编码中的汉字

Java语言中的字符char可以存储一个中文汉字吗为什么呢

汉字hash问题(转)

什么是所谓的GB2312中文显示规格

让VSCode支持gbk编码