gpt4 book ai didi

java - UTF8 字包含日英混合字符。如何识别哪个字符是日文哪个是英文?

转载 作者:可可西里 更新时间:2023-11-01 18:16:26 30 4
gpt4 key购买 nike

我有一个 UTF8 编码的字符串,其中包含日语和罗马字符。我想确定哪些字符是日文字符,哪些字符是罗马字符?如何鉴别?

最佳答案

您正在寻找 Unicode“脚本”属性。我推荐 ICU 图书馆。

发件人:http://icu-project.org/apiref/icu4c/uscript_8h.html

UScriptCode     uscript_getScript (UChar32 codepoint, UErrorCode *err)
Gets the script code associated with the given codepoint.

结果会告诉你角色的脚本。以下是一些可能返回的常量:

  • USCRIPT_JAPANESE(不确定这个类别中有什么......)
  • USCRIPT_HIRAGANA(日语假名)
  • USCRIPT_KATAKANA(日语假名)
  • USCRIPT_HAN(日语汉字)
  • USCRIPT_LATIN
  • USCRIPT_COMMON(所有脚本通用的空格和标点符号)

LibICU 可用于 Java、C 和 C++。您需要解析 Unicode 代码点才能使用该函数。

备选方案:您也可以使用 Unicode 正则表达式,尽管很少有引擎支持此语法(Perl 支持...)此 PCRE 将匹配肯定 日语,但它不会得到所有内容。

/\p{Katakana,Hiragana,Han}+/

解析这些内容时必须小心,因为日文文本通常会内嵌罗马字或数字。看一眼 ja.wikipedia.org 就会很快确认这一点。

关于java - UTF8 字包含日英混合字符。如何识别哪个字符是日文哪个是英文?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8166114/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com