Java前台传值至后台中文乱码

记一次常见问题

今天导入了一个网上下载的项目,运行后发现,前台传值 到Servlet,Servlet保存至数据库,数据库保存的中文数据出现乱码,检查了一下表中的编码是utf8没错。

Java前台传值至后台中文乱码_第1张图片

输出测试了一下

Java前台传值至后台中文乱码_第2张图片

原来和数据库编码无关,传值过来的时候就已经是一堆乱码了

在网上了解到:

当你的传参是get传参数时
如果是有中文,如果你的传参形式是iso8859-1(默认是这个)
如果你页面显示是utf-8或gbk那么
取出参数时
可以这样转换:

//接收前台传值
String name = request.getParameter("name");
// getBytes(Charset charset) 转换为指定的 charset存放到一个新的字节数组
//String(byte[] bytes, String charsetName) 通过使用指定的 charset解码指定的字节数组
name = new String(name.getBytes("iso8859-1"), "utf-8");

 

问题解决!

你可能感兴趣的:(Java前台传值至后台中文乱码)