jsp中不同提交方式的中文乱码处理方法及数据库乱码处理方法

                 最近在做一个ajax三级联动的实现,然后就遇到在中文乱码问题,不知道是哪里出了问题,因为在页面和后台都是设置编码格式为utf-8;

在表单提交的情况下就没有遇到中文乱码:

           后来发现是在ajax的提交类型上在作怪,如果是采用get提交的话,编码格式为ISO-8859-1,如果采用post提交的话编码是UTF-8;这个也是问题的所在。

           因为在jsp中对中文进行了编码的时候用的是UTF-8的编码方式,而在servlet中调用request.getParameter();方法的时候使用服务器指定的编码格式自动解码一次,所以前台编码一次后台解码一次而解码和编码的方式不用所以造成了乱码的出现。

           解决步骤:1. Post请求解决乱码问题

                                       request.setcharacterEncoding("utf-8");//设置请求编码

                   response.setcharacterEncoding("utf-8");//设置响应编码//返回页面时出现乱码时设置

                                        2.Get方式请求解决乱码问题(因为在传送的时候会把内容变成ISO-8859-1的格式类型) 因为在传送的时候会使用到很多转换,建议把转换封装成类

                String getParam = request.getParameter("getParam");  

            getParam = new String(getParam.getBytes("ISO-8859-1"), "UTF-8");  

public class MyUtil{

                  public static String getNewString(String str) throws UnsupportedEncodingException{

        return new String(str.getBytes("ISO-8859-1"),"UTF-8");

                       }

                   }

String stuname= MyUtil.getNewString(request.getParameter("stuname"));

                 3.还可以使用 java.net.URLDecoder.decode(actionMsg, "utf-8");这个命令对字符串进行解码

                                         java.net.URLDecoder.encode(actionMsg, "utf-8");这个命令对字符串进行编码

                  4.使用MySQL数据库乱码

有时会用JDBC连接MySQL数据库,可能会出现乱码,所以要在连接之后加上如下的语句:

useUnicode=true&characterEncoding=UTF-8
这样就可以解决乱码问题了。

在编写Servlet和JSP的时候,为了避免出现乱码,最重要的就是:采用一致的编码,如果编码都一致了,肯定不会出现乱码。如果出现了乱码肯定那个地方不一致了。

        如何可以手动操作数据库可以利用数据库管理软件把编码设置成utf-8;



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值