代码之家  ›  专栏  ›  技术社区  ›  Nick

如何确定字符是中文、韩文还是日文

  •  -1
  • Nick  · 技术社区  · 7 年前

    我有来自数据库的字符串。每个字符串都是英文(ASCII)或中文、韩语或日语。

    我需要检测并删除所有中文字符串,
    必须保留所有英语、韩语和日语字符串。

    这可能吗?我知道日语文本可能会使用中文符号。

    我正在使用PHP。

    更新:

    1 回复  |  直到 7 年前
        1
  •  5
  •   deceze    7 年前

    让我们先澄清一些术语:

    语言 是一种人类语言,像英语、汉语、韩语或日语。语言是用 书写系统 编码 ,这使得仅使用二进制表示法(1和0)来表示单个字符成为可能。

    考虑到所有这些,你想要的是介于不清楚和不可能之间的东西。你 能够 删除文本中的所有汉字(删除中文中使用的任何字符),但对于日语,这也意味着在很大程度上删除日语文本(韩语的情况不太一样,但版本相同)。这就像从英语文本中删除拉丁字母一样;如果你这么做,剩下的就不多了。你 可以尝试 检测某些文本是否以主要偏向于一种特定语言的编码方式进行编码,但如果您的文本以Unicode编码方式进行编码,则没有什么可区分的。你 尝试语言分析来检测文本中使用的语言,但您表示不想检测“语言”。

    试着检测字符串中是否有一些特定的韩语(朝鲜文)或日语(假名)字符,这很好地表明文本可能是这些语言中的一种。然而,在日语的情况下,你会得到错误的否定,因为一个短短语完全可能只包含中文字符,并且仍然是有效的日语。

    对于上述问题,我能给出的唯一建议是回到绘图板,找出你到底想做什么。