2010-11-05 86 views
3

我收到一個從服務器發送給我的字符串(我的應用程序在android上運行)。其中一個字符是一個Unicode音符,它是一個音符。我從服務器獲取String中的響應,然後直接將其傳遞給TextView。這是應該出現什麼:在TextView中正確呈現一個Unicode字符?

,而是我看到的只是一個塊(有點樣子):

[] 

當我打印到logcat的字符串,我看到:

â« 

我不確定如何讓TextView正確顯示字符。我試過這個:

tv.setText(Html.fromHtml(text).toString()); 

但它仍然渲染出該塊。什麼是正確的方法來做到這一點?

謝謝

--------------------更新-------------------- ---------

我試着只是在其中創建一個帶有字符的網頁,然後將系統瀏覽器指向頁面(在我的連接點上)。同樣的渲染問題,貌似字形該字符根本就不存在?:

<html> 
    <body> 
    &#x266B; 
    <br /> 
    &#9835; 
    </body> 
</html> 
+0

首先,該塊也被稱爲「缺少字符」。我認爲你對這個失蹤的字形是正確的。我想知道是否有一些方法來檢查字體[s]可用... – 2010-11-05 20:21:29

回答

1

,你可以嘗試尋找到這個包:

org.apache.commons.lang.StringEscapeUtils

它有能力unescapeHtml和unescapeXml那包含unicode字符。但是,Android使用的是Droid字體,我不認爲該字體中存在音符字符。您必須以某種方式包含一個包含該字符的字體與您的應用程序,然後使用StringEscapeUtils將服務器發送的內容轉換爲您要顯示的內容。

+0

Argh是啊只是錯過了標誌符號,哦,好吧,如果我想要,我將不得不打包我自己的字體。 – user291701 2010-11-06 15:17:22