2

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

1 回答 1

0

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

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

另请参阅在 Android 中区分 CJK 语言(中文、日文、韩文)

于 2017-02-01T15:51:49.043 回答