2013-04-19 40 views
0

我正在幫助開發Android應用程序,該應用程序有時會使用來自世界各地的特殊字符,特別是在列出人物名稱時。所以,一個很好的例子就是西班牙或瑞典的口音。該應用程序沒有正確渲染這些。我需要添加到Web服務以便這些重音標記正確顯示?它們在我的數據庫中正確顯示,但不在應用程序中。允許Android應用程序中的所有字符

+0

需要更多信息。你有什麼嘗試,出了什麼問題?如果我不得不在黑暗中拍攝一張照片,我會說這些文字是使用錯誤的編碼輸入或顯示的。您應該只使用Unicode(UTF-8),因爲該編碼涵蓋了您可能想要顯示的所有字符。 –

回答

0

下面是一個例子: http://docs.oracle.com/javase/tutorial/i18n/text/string.html

String original; 
original = new String("A" + "\u00ea" + "\u00f1" + "\u00fc" + "C"); 

打印時,命名original字符串顯示爲:

AêñüC

到字符串對象轉換爲UTF-8 ,調用getBytes 方法並指定適當的編碼作爲參數。 getBytes方法返回UTF-8格式的字節數組。至 從非Unicode字節的數組中創建一個String對象,用編碼參數調用 String構造函數。這使得 這些調用的代碼被包圍在try塊,萬一指定的編碼 不受支持:

try { 
    byte[] utf8Bytes = original.getBytes("UTF8"); 
    byte[] defaultBytes = original.getBytes(); 
    String roundTrip = new String(utf8Bytes, "UTF8"); 
    System.out.println("roundTrip = " + roundTrip); 
    System.out.println(); 
    printBytes(utf8Bytes, "utf8Bytes"); 
    System.out.println(); 
    printBytes(defaultBytes, "defaultBytes"); 
    } catch (UnsupportedEncodingException e) { 
    e.printStackTrace(); 
    } 

的字符串轉換程序打印出的值在utf8Bytes和defaultBytes陣列來演示的 重點:轉換文本的長度可能不是 ,與源文本的長度相同。某些Unicode字符將轉換爲單個字節,其他字符則轉換爲字符對或三元組。

相關問題