Я сейчас работаю над своей домашней страницей, которая полностью поддерживается рядом java-классов и базой данных MYSQL.
У меня есть форма в 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, но безуспешно.
Что я могу сделать?