我从Aozora Bunko获取html源代码。 Html文件是Shift-JIS编码的。我想获得书名和作者。然后我想将标题和作者记录到SQLite(UTF-8)数据库中。
String[] splittedResult = result.split("\"title\">");
splittedResult = splittedResult[1].split("</h1>");
String title = splittedResult[0];
byte[] b = null;
try {
b = title.getBytes("Shift_JIS");
} catch (UnsupportedEncodingException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
String value=null;
try {
value = new String(b, "UTF-8");
} catch (UnsupportedEncodingException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
...
myDatabase.addBookInformation(value, author);
结果是这样的:拉丁字母正常显示。但日语字母用块内的问号显示(请不要注意空值)
如何解决这个问题?
答案 0 :(得分:1)
正如@Codo所指出的那样,此问题的解决方案尚未解决。 我改变了这个
s = EntityUtils.toString(response.getEntity(), "UTF-8");
到这个
s = EntityUtils.toString(response.getEntity(), "Shift_JIS");
现在不需要编码。
String[] splittedResult = result.split("\"title\">");
splittedResult = splittedResult[1].split("</h1>");
String title = splittedResult[0];
/** I HAVE TAKEN THIS PART OF MY CODE
byte[] b = null;
try {
b = title.getBytes("Shift_JIS");
} catch (UnsupportedEncodingException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
String value=null;
try {
value = new String(b, "UTF-8");
} catch (UnsupportedEncodingException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
**/