Html.tohtml()之后的Android Spannable文本编码

时间:2014-02-28 11:28:05

标签: android encoding utf-8 spannablestring spannable

我正在开发一个使用EditText中的Spannable文本的应用程序。在为Spannable文本使用Html.toHtml()方法之后,它在退出时为我提供了这种字符串。

Подарок ко дню святого Валентина за 4 ночи и 1 день / Хабрахабр content: Пару недель назад, я решил подарить своей любимой на день святого Валентина подарок, изготовленный своими руками. Найденные в интернете самоделки мне не понравились, хотелось сделать что-то... annotation: “ add your comment here “

原始文本是这样的:

Пару недель назад, я решил подарить своей любимой на день святого Валентина подарок, изготовленный своими руками. Найденные в интернете самоделки мне не понравились, хотелось сделать что-то...

这是我使用的代码

contentView = (TextView)view.findViewById(R.id.contentPreview);
SpannableString contentText = (SpannableString) contentView.getText();
Log.e("Content Text",Html.toHtml(contentText));

Contentviews的代码

<TextView
                    android:id="@+id/contentPreview"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:padding="10dp"
                    android:gravity="left"
                    android:layout_gravity="center"
                    android:text="Content"
                    android:bufferType="spannable"
                    android:textSize="16sp" />

我的问题是如何规范我从TextView获得的文本?

谢谢, Arshak

1 个答案:

答案 0 :(得分:1)

我找到了解决方案。看起来这是HTML实体编码,因此对于解码,您必须使用Apache StringEscapeUtils.unescapeHtml4()方法。

TextView contentView = (TextView)view.findViewById(R.id.contentPreview);
SpannableString contentText = (SpannableString) contentView.getText();
String htmlEncodedString = Html.toHtml(contentText);
String decodedString = StringEscapeUtils.unescapeHtml4(htmlEncodedString);

Log.e("Content Text",decodedString);