簡體   English   中英

fromHtml:JellyBean和KitKat(及更高版本)上的行為不同

[英]fromHtml: Different behaviour on JellyBean and KitKat (and above)

我正在使用fromHtmlTextView顯示格式化的文本(粗體斜體等)。 但是,我發現它在JellyBean(4.1.2)和KitKat(4.4.2)上的行為不同

這是代碼:

    String myHtml = "<b>hello</b>&#128516;";
    Spanned spanned = Html.fromHtml(myHtml, null, null);

此處的html字符串具有&#128516; 這是表情符號的unicode。 現在,在從fromHtml調用fromHtml它將在KitKat(及更高版本)上返回以下值:

spanned = hello😄

這是相同的Android Studio屏幕截圖:

在此處輸入圖片說明

這是正常現象,因為我們可以看到相應的表情符號spanned

但是在JellyBean上,相同的調用返回以下值:

spanned = hello�� 

這是屏幕截圖:

在此處輸入圖片說明

這確實是意料之外的,這讓我發瘋。 我不知道我在做什么錯。 如果有人有想法,請您能幫忙嗎?

在您的src添加 java文件,並在assets dir添加 font .ttf文件

現在像下面這樣使用

String myHtml = "<b>hello</b>&#128516;";
Spanned spanned = AndroidEmoji.ensure(myHtml);

有關更多信息,請參見gitcode。

出乎意料的是,此問題的根源是我用來將TextView文本轉換為html的Html.toHtml 我使用自定義toHtml並解決了這個問題。 我用這個答案中寫的.toHtml 確實,這是一個很好的解決方案。 我不知道Android的原始Html.toHtml如何如此Html.toHtml和有缺陷。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM