2011-09-14 15 views
10

sto ottenendo la risposta dal servizio web sottoindicatoString problema di codifica in 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 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> 

Di seguito riportiamo l'uscita di WebView sotto

enter image description here

come posso mostrare carattere esatto webview?

il codice ho usato per vista web mostrato sotto

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"); 

risposta

39

1) Uso WebView.loadDataWithBaseURL, si comporta diverso (migliore) di WebView.loadData

2) Prova di sostituire "UTF-8 "codifica da qualche altro, es US-ASCII. La cosa migliore è determinare quale codifica viene realmente utilizzata nel testo che si tenta di visualizzare.

+0

ho sostituito la frase wv.loadData; (object1.getString ("POST_CONTENT") toString(), "text/html", "US-ASCII".) ma il risultato è lo stesso nessun cambiamento – dilipkaklotar

+0

Ho ottenuto il risultato utilizzando la prima risposta. grazie Nanne – dilipkaklotar

+0

questo è pazzesco, ma funziona. qualche spiegazione sul perché loaddatawithbaseurl è migliore? – njzk2

9

ho fissato i miei problemi con l'utilizzo di "text/html; charset = utf-8" come tipo MIME a WebView.loadData

EDIT: Grazie a AndyD per il suo commento. Sfortunatamente questo suggerimento non funziona su tutti i dispositivi (penso che dipenda dalla versione del webkit usato). L'utilizzo di WebView.html#loadDataWithBaseURL funziona su ogni dispositivo (testato).

+0

Ha funzionato anche per me. Bel suggerimento, grazie! Ecco come appare la mia chiamata: dwv.loadData (mContentFromFeed, "text/html; charset = utf-8", null); – Sparky

+2

non ha funzionato per me, tuttavia l'approccio loadDataWithBaseUrl ha risolto il problema per me. –

0

Ho avuto lo stesso problema in passato, il WebView.loadData() con tipo MIME "text/html; charset = utf-8" non ha funzionato per me. Ma l'unico problema era che non avevo impostato il "" meta http-equiv = "Content-Type" content = "text/html; charset = utf-8" nel mio HTML di prova.

0

Questo codice ha funzionato per me.

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"); 
         } 
6
content.loadData(htmlsource, "text/html; charset=utf-8", null); 

ha funzionato per me :)

2

base nel codice originale, è possibile utilizzare due opzioni:

uso loadDataWithBaseURL():

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

o utilizzando loadData():

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