zoukankan      html  css  js  c++  java
  • web开发字符乱码问题

    java动态网页后台乱码问题总结

    乱码可能出现的几块地方:

    1. 首先是浏览器和html之间采用的编码不一致
      解决办法:
      • 修改浏览器的编码格式
      • 修改html页面的编码格式:
        <meta http-equiv="content-Type" content="text/html;charset=utf8">
    2. jsp页面提交form表单时发生的乱码
      解决办法:
      • 修改jsp页面的编码格式:
        <%@ page contentType="text/html;charset=utf8" pageEncoding="UTF-8"%>
        此处的charset优先级比pageEncoding低,如果都没有设置,则默认为ISO-8859-1的编码格式。
      • 还不行就设置jsp页面的request:request.setCharacterEncoding("utf8");
      • 此外还可以修改后台页面如servlet:request.setCharacterEncoding("utf8");
    3. servlet向其他页面转发数据时发生的乱码
      解决办法:
      • 修改response:response.setCharacterEncoding("utf8");
    4. 向数据库传数据时的乱码
      解决办法:
      • 首先数据库编码要统一:1.建立数据库时加上CHARACTER SET 'utf8';2.建数据库表时后面加上:DEFAULT CHARSET=utf8;
      • 其次要设置连接数据库时的编码: uri="jdbc:mysql://localhost/xxx?user=root&password=123456&useUnicode=true&characterEncoding=utf-8";
      • 最后如果还有乱码,则有可能是插入数据时的参数位置没有一一对应。
    5. 除了以上几种,还有一种可能,就是IDE的字体编码问题。
    6. 另外,servlet和jsp之间传数据时有post和get两种方法,当用post时没有问题,但是当用get时需要加一个字符编码转换:
      1    public String handleString(String s){
      2       try{  byte bb[]=s.getBytes("iso-8859-1");
      3             s=new String(bb);
      4       }
      5       catch(Exception ee){} 
      6       return s;  
      7    }
    7. 最后以上都未曾解决的话,还有一个绝招,就是字符编码过滤器了。

    本人菜鸟,目测会有错误,原理也讲不清,以上只是我在遇到乱码时试过的所有办法,最终解决了所有乱码问题。 大神有见解请多多指教。谢谢~^_^

  • 相关阅读:
    既使用maven编译,又使用lib下的Jar包
    Mac idea 快捷键
    spring-boot集成Springfox-Swagger2
    java 反射获取类的静态属性值
    springmvc防止重复提交拦截器
    反射调用 java bean的set和get方法
    JSONObject 自定义过滤配置
    maven自定义脚手架(快速生成项目)
    Jackson序列化实例
    EntityManager的使用
  • 原文地址:https://www.cnblogs.com/sylvialucy/p/5067984.html
Copyright © 2011-2022 走看看