检查 Big-5 (Java) 中的字符是否为繁体中文



我有一台热敏打印机,它只支持拉丁文以外的繁体中文字符。有没有办法检查,给定 Unicode 中的 CJK 字符,它是否是 Big-5 编码下的有效繁体中文字符?

更新

这是我用来检查字符串是否具有 Unicode CJK 的方法。

public static boolean isChineseText(String s) {
    for (int i = 0; s != null && s.length() > 0 && i < s.length(); i++) {
        char ch = s.charAt(i);
        Character.UnicodeBlock block = Character.UnicodeBlock.of(ch);
        if (Character.UnicodeBlock.CJK_UNIFIED_IDEOGRAPHS.equals(block)
                || Character.UnicodeBlock.CJK_COMPATIBILITY_IDEOGRAPHS
                        .equals(block)
                || Character.UnicodeBlock.CJK_UNIFIED_IDEOGRAPHS_EXTENSION_A
                        .equals(block)) {
            //Here, I want to check if its a Traditional Chinese character under Big-5
            return true;
        }
    }
    return false;
}

你在代码(和Java本身(中进行的检查使用Unicode(不是Big-5(编码来编码繁体中文文本。有关编码之间的转换列表,请参阅此页面,或有关查找此站点。

据我所知,没有简单的方法来测试中文文本是否繁体。您可以检查字符是否介于 0xA1400xF9D5 之间(显然是我上面给出的链接中的 Big 5 范围(,但 Unicode 在此范围内也有重叠编码。

另请参阅在安卓中区分中日韩语言(中文、日文、韩文(