如何使用特殊字符解码utf-8编码的字符串,例如"< span style = \" color:#ff0000; \" gt;"在android?

时间:2013-02-14 13:15:57

标签: java android utf-8

我想在webview中显示颜色,范围,字体等。因此数据来自php webservice.Due解析数据时我们使用UTF-8格式对其进行编码。我成功解析数据并插入数据库但是这里的问题是,当我想在webview中显示该数据时,它包含一些特殊字符,如"&lt;span style=\&quot;color:#ff0000;\&quot;&gt;",这意味着<span color="#ff0000"/>"。所以在这里我想解码它,并希望得到格式为“”的结果。

我只想要String str = "&lt;span style=\&quot;color:#ff0000;\&quot;gt;";

 public String  decodeMethodUtf(Str)
          {
             //do some coding and decode
                return str;
          }

感谢任何帮助。

4 个答案:

答案 0 :(得分:5)

也许这就是你想要的

Html.fromHtml("YOUR TXT").toString()

答案 1 :(得分:4)

实际上android并没有提供任何直接的类或方法来解码并删除所有特殊字符。我花了很多时间在网上找到这个。所以现在当我找到答案时我想和你分享这个答案。 这可以通过使用不在android中的org.apache.commons.lang类来完成。 首先,你必须从中下载jar文件 这里http://mvnrepository.com/artifact/commons-lang/commons-lang/2.3

下载jar文件后,在项目中包含该文件。 现在有一行代码在这里 decoding_string = StringEscapeUtils.unescapeHtml(endoded_string); 并且解码后的字符串是没有特殊字符的最终字符串。

答案 2 :(得分:0)

希望它有所帮助。

   public String decodeMethodUtf(Str)
   {
      return URLDecoder.decode(str, "UTF-8");
   }

答案 3 :(得分:0)

谢谢@DEVENDRA。从你的帖子我能够解码已经编码的返回的JSON字符串

魔术在你的陈述中:

String decoded_string = decdecodeMethodUtf(response);

============================================== < / p>

String path = Protocol.SERVER_URL + Protocol.kMyPhp  + "?userId=" + userId + "&firstLoad=" + isRefresh + "&taskId=" + taskId;

// Make call to .php file and get response from DB

String response = HttpApi.sendRequest(path, null, null);

if (response == null) return null;

// Decode the response to replace ASCII Encoding Reference with Special Characters

String decoded_string = decdecodeMethodUtf(response);
Log.e("", ""+decoded_string);
response = decoded_string;

Log.i("response", response);
return response;