fromHtml:JellyBean 和 KitKat(及更高版本)上的不同行为
fromHtml: Different behaviour on JellyBean and KitKat (and above)
我正在使用 fromHtml
在 TextView
中显示格式化文本(粗体斜体等)。但是,我发现它在 JellyBean (4.1.2) 和 KitKat(4.4.2)
上的行为不同
代码如下:
String myHtml = "<b>hello</b>😄";
Spanned spanned = Html.fromHtml(myHtml, null, null);
这里 html 字符串有 😄
,这是表情符号的 unicode。现在在调用 fromHtml
之后它 returns 遵循 KitKat(及以上)的值:
spanned = hello
这是 Android Studio 的屏幕截图:
这是预期的行为,因为我们可以在 spanned
中看到相应的表情符号。
但在 JellyBean 上同样调用 returns 以下值:
spanned = hello��
截图如下:
这确实出乎我的意料,让我抓狂。我不知道我做错了什么。如果有人有想法请你帮忙?
在assets dir
中添加this java file in your src
and add this字体.ttf
文件
现在像下面这样使用
String myHtml = "<b>hello</b>😄";
Spanned spanned = AndroidEmoji.ensure(myHtml);
查看更多信息gitcode.
令人惊讶的是,这个问题的根源在于 Html.toHtml
,我曾将 TextView
中的文本转换为 html。我使用自定义 toHtml
并解决了这个问题。我用 .toHtml
写成 this 的回答。确实这是很好的解决方案。我想知道 Android 的原版 Html.toHtml
怎么这么蹩脚和有缺陷。
我正在使用 fromHtml
在 TextView
中显示格式化文本(粗体斜体等)。但是,我发现它在 JellyBean (4.1.2) 和 KitKat(4.4.2)
代码如下:
String myHtml = "<b>hello</b>😄";
Spanned spanned = Html.fromHtml(myHtml, null, null);
这里 html 字符串有 😄
,这是表情符号的 unicode。现在在调用 fromHtml
之后它 returns 遵循 KitKat(及以上)的值:
spanned = hello
这是 Android Studio 的屏幕截图:
这是预期的行为,因为我们可以在 spanned
中看到相应的表情符号。
但在 JellyBean 上同样调用 returns 以下值:
spanned = hello��
截图如下:
这确实出乎我的意料,让我抓狂。我不知道我做错了什么。如果有人有想法请你帮忙?
在assets dir
src
and add this字体.ttf
文件
现在像下面这样使用
String myHtml = "<b>hello</b>😄";
Spanned spanned = AndroidEmoji.ensure(myHtml);
查看更多信息gitcode.
令人惊讶的是,这个问题的根源在于 Html.toHtml
,我曾将 TextView
中的文本转换为 html。我使用自定义 toHtml
并解决了这个问题。我用 .toHtml
写成 this 的回答。确实这是很好的解决方案。我想知道 Android 的原版 Html.toHtml
怎么这么蹩脚和有缺陷。