Wikipediaのテキストを扱うコードを作成していて、enダッシュが文字化けする問題があります。私はenダッシュや他の非標準文字で作業していません(私のキーボードに表示されない文字であることは標準ではありません;)ので、私が何を指しているのかはわかりません間違っている。ここでは、コードスニペットと一緒に起こっていることがあります.....http応答処理中またはテキスト操作中に "En dash"が文字化けしています
記事の内容はWikipedia(私はApache HttpComponentsクライアントAPIを使用してWikipediaと通信しています)にリクエストを送信し、文字列:私はダッシュEN、System.outに「responseBody」を送信した場合、この時点で
DefaultHttpClient client = new DefaultHttpClient();
HttpGet queryRequest = new HttpGet(query); // query is the URL for retrieving the article contents.
ResponseHandler<String> responseHandler = new BasicResponseHandler();
String responseBody = client.execute(queryRequest, responseHandler);
は次のように私のEclipseのコンソールに表示されています「?」。これはEclipseコンソールの表示の問題かもしれませんので、私は次のように説明します。
テキストを操作し、enダッシュを無視して、テキストをWikipediaに送り返します。
今ウィキペディアにアップロードテキストは、今のように表示される前に、ダッシュ途中だったものをWebブラウザに表示される「?」List<NameValuePair> postParams = new ArrayList<NameValuePair>();
postParams.add(new BasicNameValuePair("text", content); // content is a String with the article text
UrlEncodedFormEntity entity = new UrlEncodedFormEntity(postParams, "UTF-8");
HttpPost queryRequest = new HttpPost(url); // url is the basic URL for the Wikipedia api
queryRequest.setEntity(entity);
queryRequest.addHeader("Content-Type", "application/x-www-form-urlencoded");
ResponseHandler<String> responseHandler = new BasicResponseHandler();
String responseBody = client.execute(queryRequest, responseHandler);
箱の中に(未知の文字?)。したがって、どこかでenのダッシュを誤って変更したり誤っていたりしていますが、正確にどこにいるのか分かりません。
誰かが正しい方向に向かうことができますか?
Eclipseコンソールは、通常、エンコードが正しく行われているので、Stringが既にマングルされていると思われます。 – artbristol
私はウィキペディアのサーバーが正しいエンコーディングを送信していると仮定しています。したがって、私が受け取っているものを扱うことになります。私はこれが事実だと思っていたが、私は完全にはわからなかった。私はResponseHandlerについてもっと読む必要があると思います(Apacheのチュートリアルからコピーするだけではありません)。 – Christian
http://www.joelonsoftware.com/articles/Unicode.htmlを読んでいない場合は、まずそれをお読みください。あなたのコードが正しいように見えるので、HttpClientライブラリが正しく機能していないことは珍しいことです。 – artbristol