繁体   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