Webview中的字符串编码问题

dil*_*tar 11 encoding android webview

我收到来自下面显示的Web服务的响应

<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 e o 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>
Run Code Online (Sandbox Code Playgroud)

webview的输出如下所示

在此输入图像描述

如何在webview中显示确切的字符?

我用于web视图的代码如下所示

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");
Run Code Online (Sandbox Code Playgroud)

Poi*_*ull 44

1)使用WebView.loadDataWithBaseURL,它的行为与WebView.loadData不同(更好)

2)尝试用其他方法替换"UTF-8"编码,例如US-ASCII.最好是确定您尝试显示的文本中实际使用的编码.

  • 对我来说,简单地使用`webView.loadDataWithBaseURL(NULL,htmlSource, "text/html的", "UTF-8",NULL)',而不是`webView.loadData(htmlSource, "text/html的", "UTF-8") `修复了编码问题.谢谢! (12认同)

Ale*_*gel 9

我在WebView.loadData上使用"text/html; charset = utf-8"作为MIME类型修复了我的问题

编辑:感谢AndyD的评论.不幸的是,这个提示并不适用于每个设备(我认为这取决于使用的webkit版本).使用WebView.html#loadDataWithBaseURL适用于每个(已测试)设备.

  • 不起作用,但loadDataWithBaseUrl方法为我解决了问题. (2认同)

小智 6

content.loadData(htmlsource, "text/html; charset=utf-8", null);
Run Code Online (Sandbox Code Playgroud)

它对我有用:)