0

箇条書き、著作権記号、商標記号をウェブブラウザに表示すると、それらは とよく見えます。Android WebViewでは著作権や商標記号を表示できません。

// bullets: http://losangeles.craigslist.org/wst/acc/2900906683.html 
// bullets: http://losangeles.craigslist.org/lac/acc/2902059059.html 
// bullets: http://indianapolis.craigslist.org/acc/2867115357.html 
// bullets: http://indianapolis.craigslist.org/ofc/2885697780.html 
// bullets: http://indianapolis.craigslist.org/ofc/2887554512.html 
// copyright: http://chicago.craigslist.org/nwc/acc/2854640931.html 

しかし、私は、AndroidのWebViewを使用するときに私は、「三角形内部の疑問符」を得る:

web.loadDataWithBaseURL(null, myHtml, null, "UTF-8", null); 

私は別のエンコーディングを使用する必要がありますか。

自分で特定の文字を検索/置換する必要がありますか。1行1文字?

+0

UTF-8からであるあなたは、Android 4.0にしている場合、私はとの問題があった、良いですloadDataWithBaseURL、単にloadDataを使用してください – bbedward

+0

loadData()はさらに悪化しました。引用符やアポストロフィを正しく表示することさえできません。 – Carol

+0

OS 4.0は必要ありません。これは、世界のデバイスのうち、ごくわずかしか使用されていません。私はv4.0.3に対してコンパイルしていますが、v2.2だけを必要とします。それでも、同じ問題。 – Carol

答えて

2

は、私が前にこの問題に遭遇してきたのWebViewの設定

myWebView = (WebView)findViewById(R.id.mywebView); 
WebSettings settings = myWebView.getSettings(); 
settings.setDefaultTextEncodingName("UTF-8"); 
+0

WebSettingsでUTF-8を設定すると、loadDataWithBaseURL()を使用するのと同じ問題があるようです。箇条書きを表示できません。 – Carol

1

を使用してみてください。あなたのWebViewに読み込む前に、あなたのmyHtml Stringがすでに良いエンコーディングを持っていることを確認します。 Log.d()を使ってログに記録することで確認できます。その文字列でエンコーディングが間違っていると、WebViewで正しくエンコーディングされません。 LogCatには、それらの奇妙な文字が表示されます。

この場合、myHtml Stringにデータを読み込むときに、InputStreamReaderのようなものを使用し、文字エンコーディングとして「UTF-8」を渡す必要があるでしょう。

私からあなたが使用しているコードの行を変更します

構築:コン​​ストラクタのこのバージョンはに文書化されて

BufferedReader buffer = new BufferedReader(new InputStreamReader(content, "UTF-8"), 1000); 

:に

BufferedReader buffer = new BufferedReader(new InputStreamReader(content), 1000); 

InputStreamの新しいInputStreamReader。バイトを文字に復号化するために使用される文字変換子は、encによって名前によって識別されます。エンコーディングが見つからない場合、UnsupportedEncodingExceptionエラーがスローされます。

http://developer.android.com/reference/java/io/InputStreamReader.htmlであり、第2のものを見る。

EDIT:問題が解決しない場合は、使用して試みることができる:

String s = EntityUtils.toString(entity, HTTP.UTF_8); 

Android Java UTF-8 HttpClient Problem

+0

LogCatは小さな「ボックス」文字を表示しますが、それはおそらく私が使用しているフォントのためです。解決策が何であるかまだ分かりません。 – Carol

+0

その "ボックス"文字はアスキー149です。したがって、replaceAll()を実行してから、すべての著作権文字や商標記号などを行うことができます。 – Carol

+0

私はあなたにさらに役立ついくつかのコードを追加しました。 replaceAll()の実行を避けるために、そのコードを使ってエンコードを指定することができます。 – louielouie

関連する問題