android html解码

时间:2012-02-07 14:20:55

标签: android html decode

我对在将其显示给用户之前需要解码的html文本感到困惑。 我这样做:

result= Html.fromHtml(temp).toString();

其中temp包含类似:“B \ M碰撞修复”。 但是,结果与执行后的temp完全相同。 我在这里缺少什么?

5 个答案:

答案 0 :(得分:17)

一些澄清:

  • "B \u0026 M Collision Repair"不是HTML。
  • "B & M Collision Repair"是HTML。

Java到HTML

"B \u0026 M Collision Repair"不是HTML。它是Java String literal,或者您如何在Java代码中创建字符串。 Unicode字符存储为已解码的原始字符。 \u表示法仅用于在创建字符串时转义unicode字符,而不是以这种方式存储。旁注,因为这个符号字符在ISO-8859-1范围内,所以不需要以这种方式进行转义。 "B & M Collision Repair"在Java中也是一样。

将Java字符串转换为HTML很常见,应该这样做是为了在Web浏览器中显示Java字符串。这将被称为编码HTML

将Java字符串转换为HTML,从而将Java原始unicode字符编码为HTML实体:

String java = "B \u0026 M Collision Repair";
#=> (String) "B \u0026 M Collision Repair"
#=> (String) "B & M Collision Repair"

String html = Html.escapeHtml(html);
#=> (String) "B &  M Collision Repair"
#=> (String) "B &  M Collision Repair"

#or
String html = Html.toHtml(html).toString();
#=> (String) "B &  M Collision Repair"
#=> (String) "B &  M Collision Repair"

HTML to Java

"B & M Collision Repair"是HTML。 Unicode字符存储为编码字符实体。 &#x;表示法用于转义unicode字符,以便通过ISO-8859-1进行传输。 Web浏览器对它们进行解码以显示实际的unicode字符。

将HTML转换为Java字符串不太常见,通常保留用于“抓取”或“解析”Java字符串以便在某些不支持HTML的系统中进行存储和显示。这将被称为解码HTML

将HTML转换为Java字符串,从而将HTML实体解码为Java原始unicode字符:

String html = "B & M Collision Repair";
#=> (String) "B & M Collision Repair"

String java = Html.fromHtml(html).toString();
#=> (String) "B \u0026 M Collision Repair"
#=> (String) "B & M Collision Repair"

答案 1 :(得分:1)

即使我有同样的问题。试试这个,

Spanned ss=Html.fromHtml(your String);
String tempString=ss.toString();

答案 2 :(得分:0)

尝试this课程。

result = URLDecoder.decode(temp,"UTF-8");

答案 3 :(得分:0)

\ n \ n0006是Unicode,无法翻译。建议:

String temp = "<html>B \u0026 M Collision Repair</html>";
String result = Html.fromHtml(temp).toString();

答案 4 :(得分:0)

def cuboid(self, x1,y1,z1, x2,y2,z2, tex):
    '''
    Draws a cuboid from x1,y1,z1 to x2,y2,z2 and covers each side with tex\n
    tex format:\n
        (front, back, left, right, top, bottom)
    Facing in the -z direction
    '''
    front = tex[0]
    back = tex[1]
    left = tex[2]
    right = tex[3]
    top = tex[4]
    bottom = tex[5]

    tex_coords = ("t2f", (0,0, 1,0, 1,1, 0,1))

    self.batch.add(4,GL_QUADS,back,('v3f',(x1,y1,z1, x1,y1,z2, x1,y2,z2, x1,y2,z1, )),tex_coords)
    self.batch.add(4,GL_QUADS,right,('v3f',(x2,y1,z2, x2,y1,z1, x2,y2,z1, x2,y2,z2, )),tex_coords)
    self.batch.add(4,GL_QUADS,top,('v3f',(x1,y1,z1, x2,y1,z1, x2,y1,z2, x1,y1,z2, )),tex_coords)
    self.batch.add(4,GL_QUADS,front,('v3f',(x1,y2,z2, x2,y2,z2, x2,y2,z1, x1,y2,z1, )),tex_coords)
    self.batch.add(4,GL_QUADS,bottom,('v3f',(x2,y1,z1, x1,y1,z1, x1,y2,z1, x2,y2,z1, )),tex_coords)
    self.batch.add(4,GL_QUADS,left,('v3f',(x1,y1,z2, x2,y1,z2, x2,y2,z2, x1,y2,z2, )),tex_coords)

Unicode String firstName = "Some Name"; String secondName = "Other Name" String concatStrings = firstName + " \u25CF " + secondName; textView.setText(Html.fromHtml("<font color'#2c51be'>Name: </font>" + concatStrings));

使用此LINK获取Unicode符号