源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

JSP+ MySQL中文乱码问题post提交乱码解决方案

  • 时间:2020-03-15 10:41 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:JSP+ MySQL中文乱码问题post提交乱码解决方案
写了两个jsp页面index.jsp和mysql_insert.jsp。数据处理流程为:在浏览器(chrome)上访问index.jsp后在其表单上输入数据,提交至mysql_insert.jsp,mysql_insert.jsp首先将接收到的数据按变量存入MySQL的html_db数据库的person_tb中(该表原有部分数据),然后mysql_insert.jsp再拿出该表中所有数据显示在mysql_insert.jsp页面上。 现在发现,当提交的数据中含有中文(比如变量姓名的值为中文)时,mysql_insert.jsp页面上显示新增的那条记录中的相应中文(姓名的值)乱码,其他数据都显示正常,查看数据库,发现也是相应的含有中文的变量值(姓名的值)乱码。乱码情况如下图: [img]http://files.jb51.net/file_images/article/201308/201308011637166.gif?201371163750[/img]   index.jsp中第一行有语句:<%@ page contentType="text/html;charset=gb2312"%> ,在浏览器(chrome)中访问此页面时无乱码(主要指中文乱码,英文乱码现象还没遇见过)。(试过将gb2312换成utf-8,访问后中文乱码) mysql_insert.jsp中第一行有语句:<%@page language="java" pageEncoding="UTF-8"%>,在浏览器中直接访问此页面时无乱码。 mysql_insert.jsp页面的代码如下:
[url=to.jsp?param=<%=username %>]
to.jsp页面 总之 ,乱码的解决方案如下:   post传值乱码时,在接收端设置request.setCharacterEncoding("UTF-8")   get传值或者url乱码时,手动设置接收的参数String str = new String(request.getParameter("something").getBytes("ISO-8859-1"),"utf-8") ;   由上可见get,post传值在tomcat5中是不一样的. 看完了上面红字部分的内容,我决定在提交数据的页面设置以UTF-8的格式提交数据,而同时在接收数据的页面设置也以UTF-8接收数据,于是我在两个页面的首部都添加了如下语句: <% request.setCharacterEncoding("UTF-8"); response.setCharacterEncoding("UTF-8"); response.setContentType("text/html; charset=utf-8"); %> 然后测试,OK了!没有乱码了! 现在,index.jsp页面的代码如下:
[u]复制代码[/u] 代码如下:
<%@ page language="java" pageEncoding="utf-8"%> <%@ page contentType="text/html;charset=utf-8"%> <% request.setCharacterEncoding("UTF-8"); response.setCharacterEncoding("UTF-8"); response.setContentType("text/html; charset=utf-8"); %> <html> <head> </head> <body> <form action="mysql_insert.jsp" method="post"> ID :<input type = "text" name="id" value="0"/> 姓名 :<input type = "text" name="name" value="aaa"/> 性别 :<input type = "text" name="sex" value="female"/> 年龄:<input type = "text" name="age" value="20"/> </br> <input type = "submit" value="提交"/> </form> </body> </html>
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部