我对在将其显示给用户之前需要解码的html文本感到困惑。 我这样做:
result= Html.fromHtml(temp).toString();
其中temp包含类似:“B \ M碰撞修复”。 但是,结果与执行后的temp完全相同。 我在这里缺少什么?
答案 0 :(得分:17)
一些澄清:
"B \u0026 M Collision Repair"
不是HTML。"B & M Collision Repair"
是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"
"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符号