在Big-5编码中,如何检查一个字符是否为繁体中文?(Java)

3

我有一台热敏打印机,只支持繁体中文字符而非拉丁字符。有没有办法检查给定的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;
}

你尝试过哪些代码来解决这个问题?编辑一些东西,任何东西都可以帮助我们帮助你。 - bmike
更新的问题,提前致谢。 - Divyansh Goenka
1个回答

1
你在代码中进行的检查(以及Java本身)使用Unicode编码而不是Big-5编码来编码繁体中文文本。请参见此页面以获取编码之间的转换列表,或此网站以进行查找。
我不知道有什么简单的方法来测试中文文本是否为繁体中文。您可以检查字符是否落在0xA1400xF9D5之间(显然是我上面提供的Big 5范围),但是Unicode在此范围内也具有重叠的编码。
另请参见在Android中区分CJK语言(中文、日文、韩文)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接