Декодировать HTML-объекты в Android
Мне нужно декодировать HTML-объекты, например, из & # 246; ö и & amp; к &.
URLEncoder.decode(str)
не выполняет работу (конвертировать из% нотаций). TextUtils имеет HTMLencode, но не HTMLdecode.
Есть ли функция для декодирования HTML-объектов?
6 ответов
Класс Html должен делать это, однако говорят, что не все поддерживается. Это всегда работало для меня, но у меня никогда не было ö, поэтому я не могу сказать за это. Пытаться Html.fromHtml(yourStr)
чтобы получить расшифрованную строку.
Html.fromHtml(String html) устарел после API v24, так что это правильный способ сделать это
if (Build.VERSION.SDK_INT >= 24)
{
textView.setText(Html.fromHtml(htmlString , Html.FROM_HTML_MODE_LEGACY)));
}
else
{
textView.setText(Html.fromHtml(htmlString));
}
Просто вы можете сделать это с помощью этого кода
Html.fromHtml(String).toString();
Надеюсь, что это поможет вам
Вы можете использовать WebView для простого представления любого HTML-текста, выполнив следующие шаги.
сначала конвертируйте ваши данные в html формат как:
String res=null;
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.N) {
res=Html.fromHtml(product.getDescription(),Html.FROM_HTML_MODE_COMPACT).toString();
}
else{
res=Html.fromHtml(product.getDescription()).toString();
}
Затем загрузите ваши данные в WebView как:
myWebView.loadDataWithBaseURL(null, res, "text/html", "utf-8", null);
Вы можете удалить специальный символ из строки, вызвав
responsestring.replace(“special char here”, “”);
вы можете преобразовать ответ в строку из htmlstring следующим образом - Html.fromHtml(строка ответа здесь). Но этот метод не рекомендуется использовать в API 24, поэтому вам нужно сделать это правильно.
if (Build.VERSION.SDK_INT >= 24)
{
post_description.setText(Html.fromHtml( response here , Html.FROM_HTML_MODE_LEGACY));
}
else
{
post_description.setText(Html.fromHtml( response here ));
}
Чтобы обойти устаревание API v24, вы можете использовать
HtmlCompat.fromHtml(htmlString, HtmlCompat.FROM_HTML_MODE_COMPACT).toString()