2014-12-11 86 views
2

我有一臺熱敏打印機,它只支持拉丁文以外的繁體中文字符。有沒有什麼辦法可以檢查,在Unicode中有一個CJK字符,它是否是Big-5編碼下的有效繁體中文字符?檢查一個字符是Big-5(Java)中的繁體中文嗎?

UPDATE

這裏是我使用的檢查,如果字符串中有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; 
} 
+0

你試過什麼樣的代碼來解決這個問題?編輯一些東西,任何東西都可以幫助我們幫助你。 – bmike 2014-12-11 02:43:42

+0

更新了問題,提前致謝 – 2014-12-11 03:19:04

回答

0

你在你的代碼(和Java本身)在做這些檢查使用Unicode(不BIG-5)編碼,以中國傳統的文本進行編碼。有關編碼之間的轉換列表,請參閱this page,或者查看this site

我沒有簡單的方法來測試中文文本是傳統的。你可以檢查字符是否在0xA1400xF9D5之間(顯然是上面給出的鏈接的Big5範圍),但是Unicode在這個範圍內也有重疊編碼。

另請參見Differentiating CJK languages (Chinese, Japanese, Korean) in Android

相關問題