如何使用Html.fromHtml在android中显示心脏标志

时间:2013-12-26 08:40:20

标签: java android unicode special-characters

在我的应用程序中,我从服务器获取一些数据,数据可能包含一些像心脏等的unicode字符。

现在我可以使用unicode格式显示黑心符号,这样

String str = "\u2764";//unicode character for black heart
TextView txtv = (TextView)findViewById(R.id.txtv);
txtv.setText(txtv.getText()+str);

但我正在设置这样的文字:

holder.txt_cardDesc.setText(Html.fromHtml(cardsDataClass.getCarddesc()));
  

cardsDataClass.getCarddesc()返回“â¥所有即将改变,圣诞节快到了,我们向所有人祈求上帝......”

而且我应该得到'â¥'作为服务的心脏符号。

如何以unicode格式或心形符号显示此特殊字符?

这个格式显示的是哪个格式?它是HTML / XML格式还是Klingonese字符,我对此一无所知。

如何在android中使用Html.fromHtml显示心脏标志?


编辑:从服务中我可能会得到不同的特殊字符,如“'”或“&”但我得到的是“—而不是“'”,“Ã¥”而不是“♥”

有没有办法检查所有文本并在android中显示正确的特殊字符?


编辑2:任何人都可以告诉我如何在这个字符串的位置显示心脏符号和撇号

String desc = "âÂÂ¥heart icon check, €™ apostrophe check";

我已经使用了所有这些程序:

byte[] bytes = desc.getBytes("UTF-8");              
String s2 = new String(bytes, "UTF-8"); // Charset with which bytes were encoded
txtv.setText(s2);

final String s2 = new String(desc.getBytes(), "UTF-8");
txtv.setText(s2);

String s2 = URLDecoder.decode(desc, "UTF-8");
txtv.setText(s2);

byte[] data = desc.getBytes("UTF-8");
String base64 = Base64.encodeToString(data, Base64.DEFAULT);
byte[] data1 = Base64.decode(base64, Base64.DEFAULT);
String text = new String(data1, "UTF-8");
txtv.setText(text);

但它们都没有工作,如何以实际格式显示UTF-8文本格式

由于

1 个答案:

答案 0 :(得分:1)

你可能会对Java Character& Android角色。

让你的cardsDataClass.getCarddesc()返回:

“\ u2764很快就会改变,圣诞节快到了,我们向所有人祈求上帝......”

并且心脏应该显示得很好。