Java前台传值至后台中文乱码
记一次常见问题
今天导入了一个网上下载的项目,运行后发现,前台传值 到Servlet,Servlet保存至数据库,数据库保存的中文数据出现乱码,检查了一下表中的编码是utf8没错。
输出测试了一下
原来和数据库编码无关,传值过来的时候就已经是一堆乱码了
在网上了解到:
当你的传参是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");
问题解决!