Intereting Posts
Android: как сделать файлы игровых активов доступными для чтения с помощью кода c ++ с помощью ndk Gradle Build Android Project Ошибка «Не удалось разрешить все зависимости» Xamarin Android Player – невозможно воспроизвести это видео Как удалить границу за кнопкой? Сбой сохранения состояния – цель не в менеджере фрагментов (setTargetFragment) Как я могу отключить альфа-значение пульсации Lollipop для Android? Есть ли способ проверить, поддерживает ли Android-устройство openGL ES 2.0? Как скрыть Soft Keyboard при запуске активности NoClassDefFoundError: Неудачное разрешение: Landroid / support / v7 / appcompat / R $ styleable Связь между устройствами через Bluetooth с помощью Phonegap на Android? Возможно ли обновить Media Store на Android Nougat? Как получить список событий календаря устройств в устройстве Android? Java.lang.RuntimeException: сбой takePicture Android: рейтинг не отображается, становится видимым только при касании Android: перехват вызова AJAX из WebView

Проблема кодирования строк в Webview

Я получаю ответ от веб-сервиса, показанного ниже.

<html><head> <style type="text/css"> body{ color: #FFFFFF; background-color: #000000; } </style> </head> <body><center><div> Ricardo Viana Vargas  09-14 Ricardo Viana Vargas é especialista em gerenciamento de projetos, portfólio e riscos. Foi, nos últimos 15 anos, responsável por mais de 80 projetos de grande porte em diversos países, nas áreas de petróleo, energia, infraestrutura, telecomunicações, informática e finanças, com um portfólio de investimentos gerenciado superior a 18 bilhões de dólares. Foi o primeiro voluntário latino-americano a ser eleito para exercer a função de presidente do conselho diretor (Chairman) do Project Management Institute (PMI), maior organização do mundo voltada para a administração de projetos, com cerca de 500 mil membros e profissionais certificados em 175 países. Ricardo Vargas escreveu dez livros sobre gerenciamento de projetos, publicados em português e inglês, com mais de 240 mil exemplares vendidos mundialmente. Recebeu em 2005 o prêmio PMI Distinguished Award pela sua contribuição para o desenvolvimento do gerenciamento de projetos eo PMI Professional Development Product of the Year pelo workshop PMDome®, considerado a melhor solução do mundo para o ensino do gerenciamento de projetos. É professor de gerenciamento de projetos em diversos cursos de MBA, participando do conselho editorial de revistas especializadas no Brasil e nos Estados Unidos. Vargas é revisor reconhecido da mais importante referência no mundo sobre gerenciamento de projetos, o PMBOK Guide. Foi também chair da tradução oficial do PMBOK para o português. Engenheiro químico e mestre em Engenharia de Produção pela UFMG, Ricardo Vargas tem também o Master Certificate in Project Management pela George Washington University, além de ser certificado pelo PMI como Project Management Professional (PMP) e pela Scrum Alliance como Certified Scrum Master (CSM). Participou do programa de negociações para executivos da Harvard Law School e tem formação executiva de estratégia e inovação pelo Massachusetts Institute of technology (MIT).Durante onze anos, a partir de 1995, desenvolveu em conjunto com dois sócios um dos mais sólidos negócios de tecnologia, gerenciamento de projetos e terceirização do mercado brasileiro, que contava com 4,000 colaboradores e gerava uma receita anual de 50 milhões de dólares em 2006, quando Ricardo Vargas vendeu sua participação para se dedicar integralmente à internacionalização de seus trabalhos em gerenciamento de projetos. É membro da Association for Advancement of Cost Engineering (AACE), da American Management Association (AMA), da International Project Management Association (IPMA), do Institute for Global Ethics e da Professional Risk Management International Association (PRMIA). </div> </center> </body> </html> 

Результат веб-просмотра показан ниже

Введите описание изображения здесь

Как я могу показать точный характер в webview?

Код, который я использовал для просмотра веб-страниц, показанного ниже

 System.out.println("strContent is :: " + strContent); WebView wv = (WebView) findViewById(R.id.webview_portugage); wv.setScrollBarStyle(View.SCROLLBARS_INSIDE_OVERLAY); wv.loadData(strContent, "text/html", "UTF-8"); 

Solutions Collecting From Web of "Проблема кодирования строк в Webview"

1) Используйте WebView.loadDataWithBaseURL, он ведет себя по-другому (лучше), чем WebView.loadData

2) Попробуйте заменить кодировку «UTF-8» каким-либо другим, например US-ASCII. Лучше всего определить, какая кодировка действительно используется в тексте, который вы пытаетесь отобразить.

Я исправил свои проблемы с помощью «text / html; charset = utf-8» в качестве MIME-типа в WebView.loadData

EDIT: Спасибо AndyD за его комментарий. К сожалению, этот совет не работает на каждом устройстве (я думаю, это зависит от используемой версии webkit). Использование WebView.html # loadDataWithBaseURL работает на каждом (тестируемом) устройстве.

 content.loadData(htmlsource, "text/html; charset=utf-8", null); 

Это сработало для меня 🙂

На основе исходного кода вы можете использовать два варианта:

Использование loadDataWithBaseURL() :

 wv.loadDataWithBaseURL(null, strContent, "text/html", "UTF-8", null); 

Или используя loadData() :

 wv.loadData(strContent, "text/html; charset=utf-8", "UTF-8"); 

У меня была такая же проблема в прошлом, для WebView.loadData () с типом MIME «text / html; charset = utf-8» не работало для меня. Но единственная проблема заключалась в том, что я не установил «meta http-equiv =» Content-Type «content =» text / html; Charset = utf-8 " в моем тестовом HTML.

Этот код работал для меня.

 String base64EncodedString = null; try { base64EncodedString = android.util.Base64.encodeToString((preString+mailContent.getBody()+postString).getBytes("UTF-8"), android.util.Base64.DEFAULT); } catch (UnsupportedEncodingException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } if(base64EncodedString != null) { wvMailContent.loadData(base64EncodedString, "text/html; charset=utf-8", "base64"); } else { wvMailContent.loadData(preString+mailContent.getBody()+postString, "text/html; charset=utf-8", "utf-8"); }