2012-02-22 58 views

回答

14

您可以使用Html.fromHtml()將HTML格式的文本處理成TextView可以顯示的Spannable

+0

謝謝,那我還需要什麼! – yital9 2012-02-22 18:58:23

+0

沒問題,一定要接受答案。 – draksia 2012-02-22 18:59:39

6

如果您知道Unicode值,則可以顯示任何UTF-8字符。例如,對於",您應該有&\#0034;

參見Unicode Characters(在Code Table)的詳細信息。

+0

這是問題,我有這種格式的這些字符。我需要它來顯示。所以Html.fromHtml()幫助做到這一點 – yital9 2012-02-22 18:59:59

+0

Happaa ...!你救了我knossos .. !! +1它對我有用,你在一天中的其餘時間救了我。 – 2013-08-08 11:00:14

+1

您也可以使用這種格式:\ u2122,這是商標符號。 – Knossos 2013-08-08 14:11:17

2

我實現了這個解決方案。

Activity類:

textView.setText(getString(R.string.author_quote, "To be or not to be", "Shakespeare")) 

的strings.xml:

<string name="author_quote">&#171; %1$s &#187; - %2$s</string> 

HTML字符被寫入直接在strings.xml中,不需要額外的Html.fromHtml()。它適用於我所有的設備。

0

我已經寫了將所有的Unicode轉換從六整數和實際字符串替換一個自定義的方法。 因此,文本視圖可以讀取爲一個unicode。 看看,這將解決您的問題...

公共字符串unecodeStr(字符串escapedString){

try { 
     String str; 
     int from = 0; 
     int index = escapedString.indexOf("\\u", 0); 
     while (index > -1) { 
      str = escapedString.substring(index, index + 6).replace("\\u", ""); 
      try { 
       Integer iI = Integer.parseInt(str, 16); 
       char[] chaCha = Character.toChars(iI); 
       escapedString = escapedString.replaceFirst(str, String.valueOf(chaCha)); 
      } catch (Exception e) { 
       CustomLog.e("error:", e.getMessage()); 
      } 
      from = index + 3; 
      index = escapedString.indexOf("\\u", from); 
     } 

     escapedString = escapedString.replace("\\u", ""); 
    } catch (Exception e) { 
     CustomLog.info("warnning", "emoji parsing error at " + escapedString); 
    } 

    return escapedString; 
}