Android中的HTML解析特殊字符

Android中的HTML解析特殊字符,android,html,unicode,Android,Html,Unicode,我有一个简单的问题:一旦检索到邮件文本,有时会发生Html.fromHtml无法正确解析字符串的情况 我给你举个例子。这是HTML字符串: &#‪8211‬;&#‪8211‬;&#‪8211‬;&#‪8211‬;& 它应该是这样的: –––––––––––––––––––––––––– 安卓有没有办法做到这一点?我需要使用正则表达式吗 非常感谢。示例中的字符串是–––&(字面意思)

我有一个简单的问题:一旦检索到邮件文本,有时会发生
Html.fromHtml
无法正确解析字符串的情况

我给你举个例子。这是HTML字符串:

&#‪8211‬;&#‪8211‬;&#‪8211‬;&#‪8211‬;&
它应该是这样的:

––––––––––––––––––––––––––

安卓有没有办法做到这一点?我需要使用正则表达式吗


非常感谢。

示例中的字符串是
–––&(字面意思),因此正确的浏览器行为是以这种方式呈现。出于某种无法从描述中猜到的原因,一些软件采用了双重编码,即首先将em破折号“-”编码为
,然后将
&
再次编码为
&


顺便说一下,一系列连续的em破折号可能会也可能不会产生一条连续线;这取决于字体。有更可靠的方法生成长行,例如CSS中的

元素和边框属性。

示例中的字符串是
&8211––&(字面意思),因此正确的浏览器行为是以这种方式呈现。出于某种无法从描述中猜到的原因,一些软件采用了双重编码,即首先将em破折号“-”编码为
,然后将
&
再次编码为
&


顺便说一下,一系列连续的em破折号可能会也可能不会产生一条连续线;这取决于字体。有更可靠的方法生成长行,例如CSS中的

元素和边框属性。

您可以使用以下方法过滤隐藏字符(在本例中):

在那之后,它只是:

Html.fromHtml(myString);
它将在html上下文中工作。或者,如果您想要真正的em短划线字符:

Html.fromHtml(Html.fromHtml(myString));

这个概念的演示:(javascript,您必须在java的回答中使用代码)

您可以使用以下方法过滤隐藏字符(在本例中):

在那之后,它只是:

Html.fromHtml(myString);
它将在html上下文中工作。或者,如果您想要真正的em短划线字符:

Html.fromHtml(Html.fromHtml(myString));

这个概念的演示:(javascript,您必须在这个java答案中使用代码)

没错。事实上这是个大问题。Html.fromHtml方法正确地解码了&中的&,但破折号代码没有解码。也许通过首先从主字符串启动Html.fromHtml,它可以转换&,然后我需要其他东西来解码–代码。@edoardotogoni因为它是双重编码的,所以只需调用
Html.fromHtml
两次
Html.fromHtml(Html.fromHtml(myString))
Btw,您给出的字符串将在每个
之后填充。。你应该把这些过滤掉,双重解码就行了是的,我2分钟前还在想这个问题。你会怎么过滤呢?没错。事实上这是个大问题。Html.fromHtml方法正确地解码了&中的&,但破折号代码没有解码。也许通过首先从主字符串启动Html.fromHtml,它可以转换&,然后我需要其他东西来解码–代码。@edoardotogoni因为它是双重编码的,所以只需调用
Html.fromHtml
两次
Html.fromHtml(Html.fromHtml(myString))
Btw,您给出的字符串将在每个
之后填充。。你应该把这些过滤掉,双重解码就行了是的,我2分钟前还在想这个问题。第二部分不起作用,因为Html.fromHtml不会解析这些特殊字符,我已经试过了。但是第一次成功了,我两天前才发现。那就是让你的答案正确。ThanksHtml.fromHtml(Html.fromHtml(myString));为我工作。但是Html.fromHtml只接受字符串。所以我们必须做Html.fromHtml(Html.fromHtml(myString.toString());第二部分不起作用,因为Html.fromHtml不会解析这些特殊字符,我已经试过了。但是第一次成功了,我两天前才发现。那就是让你的答案正确。ThanksHtml.fromHtml(Html.fromHtml(myString));为我工作。但是Html.fromHtml只接受字符串。所以我们必须做Html.fromHtml(Html.fromHtml(myString.toString());