【发布时间】:2011-09-14 03:32:28
【问题描述】:
我目前正在开发我的主页,该主页完全由许多 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,但都没有成功。
我能做什么?
【问题讨论】:
标签: java mysql html utf-8 character-encoding