我有一台热敏打印机,它只支持拉丁文以外的繁体中文字符。有没有办法检查,给定 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(编码来编码繁体中文文本。有关编码之间的转换列表,请参阅此页面,或有关查找此站点。
据我所知,没有简单的方法来测试中文文本是否繁体。您可以检查字符是否介于 0xA140
和 0xF9D5
之间(显然是我上面给出的链接中的 Big 5 范围(,但 Unicode 在此范围内也有重叠编码。
另请参阅在安卓中区分中日韩语言(中文、日文、韩文(