日本語用のウィキメディアAPIサンドボックスを使用しています。
ウィキメディアにHTTPリクエストを送信すると、XMLで形成された結果が得られます。API Sandbox Webページでリクエストを送信して結果を取得しようとすると、結果に文字の破損はありません。
しかし、Javaで結果を取得すると、結果に文字の破損が含まれます。
XMLファイルで特定の文字コードを割り当てることができません。
結果に特定の文字コードを割り当てるにはどうすればよいですか?どうすれば問題を解決できますか?
try {
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder db = dbf.newDocumentBuilder();
Document doc = db
.parse(new URL(
"http://ja.wikipedia.org/w/api.php?action=query&prop=categories&format=xml&cllimit=10&titles="
+ key).openStream());
Element root = doc.getDocumentElement();
NodeList queryList = root.getChildNodes();
Node query = queryList.item(0);
if (query instanceof Element) {
Element queryEle = (Element) query;
NodeList pagesList = queryEle.getChildNodes();
Node pgs = pagesList.item(0);
if (pgs instanceof Element) {
Element pagesElement = (Element) pgs;
NodeList pageList = pagesElement.getChildNodes();
Node page = pageList.item(0);
if (page instanceof Element) {
Element pageElement = (Element) page;
String title = pageElement.getAttribute("title");
title = new String(title.getBytes("UTF-8"), "UTF-8");
}
}
}
} catch (ParserConfigurationException e) {
} catch (SAXException e) {
} catch (IOException e) {
}
リクエストを送信すると、ページタイトルが「大学」の結果が得られました。しかし、Javaでは「??」と表示されます。
上記のコードをAndroidアプリケーションに使用します。