检查角色是否是Big-5(Java)中的繁体中文?

时间:2014-12-11 02:40:53

标签: java android unicode chinese-locale big5

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

更新

这是我用来检查String是否具有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;
}

1 个答案:

答案 0 :(得分:0)

您在代码中执行的检查(以及Java本身)使用Unicode(非Big-5)编码来编码繁体中文文本。有关编码之间的转换列表,请参阅this page,或查找this site

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

另见Differentiating CJK languages (Chinese, Japanese, Korean) in Android