1.request.getParameter(“参数名”) 中文乱码解决方法
原文:https://www.cnblogs.com/shihaiming/p/6898956.html
解决问题,先要研究问题,URL传中文参数为什么会出现乱码?
原因:Http请求传输时将url以ISO-8859-1编码,服务器收到字节流后默认会以ISO-8859-1编码来解码成字符流(造成中文乱码)
解决办法:我们需要把request.getParameter(“参数名”)获取到的字符串先用ISO-8859-1编码成字节流,然后再将其用utf-8解码成字符流
代码:
String str = new String(request.getParameter("参数名").getBytes("iso-8859-1"), "utf-8");
2.PreparedStatement 的 setObject 把中文转为了问号
查看数据库连接串,jdbc:mysql://localhost:3306/test?characterEncoding=UTF-8
数据库test后的?characterEncoding=UTF-8将编码设为utf-8