0
iOSのsmsデータベースファイルから読みやすいHTMLページに会話を変換するサンプルアプリケーションをビルドします。JavaのローカルSQLiteデータベースからemojisを読み込みます。
しかし、コンソールとhtmlページで、emojisは '?'と表示されます。 DBブラウザーでは問題なく表示されます。 HTMLプレビューの
そして、私のコード:
public static void main(String[] args) throws SQLException, IOException {
String url = "jdbc:sqlite:C:/test/sms2.db";
Connection conn = DriverManager.getConnection(url);
Statement s = conn.createStatement();
ResultSet rs = s.executeQuery("SELECT handle_id,is_from_me,text FROM message");
File f = new File("C:\\Users\\theda\\Documents\\Messages\\convo\\+1**********.html");
if(!f.exists())
f.createNewFile();
FileWriter w = new FileWriter(f);
WriterOutputStream write = new WriterOutputStream(w, Charset.forName("utf8"));
w.append("<link rel='stylesheet' type='text/css' href='message.css'>");
w.append("<body>");
while(rs.next()){
if(rs.getInt("handle_id") == 3){
String st = " ";
String fromMe = " ";
if(rs.getInt("is_from_me") == 1)
fromMe = "true";
else
fromMe = "false";
st = "<div class='message' data-outgoing='" + fromMe + "'>" + rs.getString("text") + "</div><br>";
System.out.println(st);
w.append(st);
}
}
w.append("</body>");
w.close();
}
ありがとうございましたが、今ではHTMLで「as」と表示されますが、「&#55356;コンソールでも同様です – DarkLlama
[W3 Validator](https://validator.w3.org/)からページ出力を実行することをお勧めします。あなたのページのエンコーディングの問題を特定するかもしれません。 –