2014-02-10 50 views
2

完全支持下面我有一個小的測試程序比可以驗證,如果一個字符串的內容全在代碼頁 CP852或不支持。有沒有更好的方法來做到這一點?驗證一個字符串是否在一個特定的代碼頁

public class CodepageTest { 
    public static void main(String[] args) { 
     try { 
      String test = "æøå123"; 
      String test2 = new String(test.getBytes("CP852"), "CP852"); 

      System.out.println(test); 
      System.out.println(test2); 

      System.out.println("String supported in codepage: " + (test.equals(test2))); 
     } catch (UnsupportedEncodingException e) { 
      e.printStackTrace(); 
     } 
    } 
} 

輸出:

æøå123 
???123 
String supported in codepage: false 

回答

1

您可以創建一個編碼器對應的字符集,並明確使用its canEncode method

boolean canEncode = Charset.forName("CP852").newEncoder().canEncode(test); 
+0

只是輝煌! –

相關問題