我目前正在我的主頁上工作,它完全由許多java類和MYSQL數據庫支持。ÅØÆ - 麻煩的文本編碼從HTML - > Java - > MySQL - > Java - > HTML
我有一個HTML格式的表單,允許觀看者輸入評論。本文然後由CGI腳本解析Java類在那裏我閱讀的文本:
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
String[] data = {in.readLine()};
註釋,然後解析到與以下數據庫:
Connection conn;
forName("com.mysql.jdbc.Driver").newInstance();
//String url = "jdbc:mysql://localhost/pagebuilder";
String url = "jdbc:mysql://localhost/pagebuilder?useUnicode=true&characterEncoding=utf-8";
//String url = "jdbc:mysql://localhost/pagebuilder?characterEncoding=utf-8";
String userName = "username";
String password = "password";
conn = DriverManager.getConnection(url, userName, password);
return conn;
}
public static void closeConnection(Connection conn) throws SQLException {
conn.close();
}
public static void comment(String image, String name, String comment, String email){
Connection conn = null;
try {
conn = Database.getConnection();
}
catch (Exception e) {
e.printStackTrace();
}
if (conn != null) {
try {
java.sql.Timestamp sqlDate = new java.sql.Timestamp(new java.util.Date().getTime());
PreparedStatement pstmt1 = conn.prepareStatement("INSERT INTO comment VALUES(0,?,?,?,?,?)");
pstmt1.setTimestamp(1,sqlDate);
pstmt1.setString(2, image);
pstmt1.setString(3, name);
pstmt1.setString(4, comment);
pstmt1.setString(5, email);
pstmt1.executeUpdate();
conn.close();
}
如果我輸入像æøp
甚至逗號特殊字符丹麥的輸出如下:
輸入:,æøå
輸出:%2C%C3%A6%C3%B8%C3%A5
如何保持輸入和輸出相同?
我已經多次嘗試將HTML,Java連接和數據庫設置爲UTF-8,但沒有運氣。
我該怎麼辦?
非常完美,非常感謝。這些字符現在可以正確插入到數據庫中。現在我只需要將它們正確地取出並顯示出來。目前我得到???。非常感謝您的幫助 –
你什麼時候得到? - 從網頁瀏覽器?它是否從mysql命令行客戶端正確顯示? – torstenvl
我通過在Java中將輸出編碼添加到我的輸出寫入程序來修復它。這解決了問題,現在所有東西都應該顯示。再一次,非常感謝您的幫助。 –