表单输入中文无法输入显示错误+可以输入后显示乱码
2025/4/17 11:00
问题1
用jsp建一个分享代码的网站,当输入内容为中文时,显示“输入错误”,其他的倒是可以正常输入到数据库
Servlet的代码上传方法:
点击查看代码
public static boolean uploadCode(String author, String title, String code) {
try (Connection conn = DriverManager.getConnection(DB_URL, DB_USER, DB_PASSWORD)) {
String sql = "INSERT INTO code_shares (author, title, code) VALUES (?, ?, ?)";
try (PreparedStatement pstmt = conn.prepareStatement(sql)) {
pstmt.setString(1, author);
pstmt.setString(2, title);
pstmt.setString(3, code);
int rows = pstmt.executeUpdate();
return rows > 0;
}
} catch (Exception e) {
e.printStackTrace();
return false;
}
}
哪里有问题?
页面没有中文乱码,所以应该不是页面设置的问题...从这个方法里看出,java代码没什么出错的空间,问题可能出在mysql
难道数据库属性不支持中文?


使用第一行命令查看数据库各个属性类型
第二行,当将value改成中文时报错,说明问题就在这里了
修改数据库字符编码、修改表的字符编码

发现可以成功插入了

问题2:
通过mysql可以正常对表进行操作,但通过表单输入数据操作数据库,又出现了乱码:


mysql数据库和表格的字符编码我都已经设置为utf-8,猜测可能是java与数据库连接过程中出现了某些问题
可能1:表单提交过程
增加后面的accept-charset属性
浙公网安备 33010602011771号