1
我從Aozora Bunko獲取html源代碼。 Html文件是Shift-JIS編碼。我正試圖獲得書名和作者。然後我想將標題和作者錄製到SQLite(UTF-8)數據庫中。如何將Shift-JIS編碼的字符串轉換爲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);
結果是這樣的:拉丁字母正常顯示。但是,日本的信件被框所示的問題裏面標記(請不要注意空值)
如何解決這個問題呢?
Java字節數組可以包含具有特定編碼的字符串。 Java字符串不能:它基本上是一個不包含任何編碼的字符數組。您的代碼以字符串變量(名爲'result')開頭。因此,將具有特定編碼的HTML頁面轉換爲無編碼的字符數組已經發生。使用調試器來檢查'result'或'title'是否包含正確的日文字符。如果沒有,問題出現在問題中顯示的代碼之前。如果沒關係,那麼我不明白你的問題。 – Codo