您的位置:首页 > 数据库

JspSmartUpload传入数据库出现乱码问题

2016-10-28 11:47 344 查看
部分代码

register.jsp
<%@ page language="java" import="java.util.*" contentType="text/html; charset=utf-8"%>
.........
<%request.setCharacterEncoding("utf-8");%>
<form action="/实验8/servlet/UploadServlet" method="post" enctype="multipart/form-data">
<label>性别: </label>
<input name="sex"  type="radio" value="男" checked/> 男
<input name="sex"  type="radio" value="女"/> 女
<label>照片: </label>
<input name="picture" value="" type="file"/>
<input value="注册" type="submit"/>
</form>
......


结果:



数据库出现乱码:



解决方法:

将以下两句设置为 gb2312

<%@ page language="java" import="java.util.*" contentType="text/html; charset=gb2312"%>
request.setCharacterEncoding("gb2312");


重新部署编译运行



原因:

别的地方看到把jspSmartUpload 源代码包:
file.setFieldName(s4);//196行
改成: file.setFileName(newString(s4.getBytes("ISO8859-1")));
file.setFilePathName(s5);//198
改成: file.setFilePathName(new String(s4.getBytes("ISO8859-1")));


能解决乱码问题,所以出现乱码是jspsmart.jar里使用gbk编码。

规律:

utf-8编码可以用gbk和iso8859-1解码后编回去

gbk编码后只能用iso8859-1解码后编回去


在JSP页面获取表单的值时会出现乱码,有两种解决方法:

1.在调用getParameter之前通过request.setCharacterEncoding设置字符编码

2.调用new String(str.getBytes("iso8859-1"), "UTF-8");编码后解码
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  数据库 乱码