java web 中文乱码

标签: java java web 开发人员 乱码
68人阅读 评论(0) 收藏 举报
分类:

开发过程中,中文乱码的问题,一直都是一个老生常谈的问题困扰这开发人员。

1. 通过后台解决

public String youMethodName(HttpServletRequest req,...){
    String yourParam = req.getParameter("paramName");
    Matcher m = Pattern.compile("[\u4e00-\u9fa5]").matcher(yourParam);  
                //如果没有发现中文,说明使用get方式传递了中文,需要使用下面的方法转换  
                if (!m.find()) {  
                    programaName = this.tools.decodeUTF8FromIso88591(programaName);
                }  
    public String decodeUTF8FromIso88591(String paramStr) {
            if (null == paramStr || paramStr.length() <= 0) {
                return null;
            }
            try {
                byte[] bytes = paramStr.getBytes("iso-8859-1");
                paramStr = new String(bytes, "utf-8");
            } catch (Exception e) {
                e.printStackTrace();
            }
            return paramStr;
        }
}

一般情况我们是可以通过上面的方法解决中文的乱码问题,但也有特殊情况


2. 通过前台传递时解决

将请求参数经过URI编码在传给后台.防止了乱码;

var param = encodeURIComponent("yourParam");

当再需要使用的时候在通过对应的解码对其解码展示;

String param = encodeURIComponent(req.getParameter(param));

如果将转码过后的值作为数据存储到数据库中,这样同时可以防止数据库的SQL注入;

encodeURIComponent() URI编码

是将字符串 经过URI编码,避免get方式到后台乱码

name=中文字符

传到后台会根据浏览器不同有不同处理

tomcat server.xml中设置了编码 接收到的值也不一样

URI编码不能过滤非法字符

可以直接按F12在Console下面输入代码

console.log(encodeURIComponent("!@#$%^&"));
!%40%23%24%25%5E%26

所以如果这里面有非法字符比如 &%¥# 这些 经过encodeURIComponent 也都传到后台了

查看评论

Java Web快速入门

-
  • 1970年01月01日 08:00

中文乱码之填坑Java web

中文乱码之填坑Java web导言 在java web项目中,中文乱码问题屡见不鲜,继N+1次后的踩坑,我终于舍得做出了这次总结,请容许我默默擦干眼泪再娓娓道来~ 常见的编码格式first,第一个...
  • DBB_zifeng
  • DBB_zifeng
  • 2016-11-23 13:47:56
  • 585

java web 解决中文乱码问题(全面总结)

在开发一个完整的web项目时,总是会遇到各种各样的中文乱码问题,例如页面显示乱码,表单提交乱码,数据库存储乱码等          等,虽然目前也能找到各种各样的解决方案,但是大部分都没有总结全面。(...
  • GreetTuring
  • GreetTuring
  • 2017-02-18 22:12:39
  • 1476

血与泪的教训: JavaWeb中文乱码问题整合

中文的字符编码集有:GB2312,GB18030,UTF-8(适用于中文,但偶尔会出错,前面两个比较有保障) Html页面乱码问题 在标签中设置...
  • bigwhitetao9527
  • bigwhitetao9527
  • 2017-09-23 22:29:05
  • 2240

中文乱码-Javaweb-request读取时乱码解决方法

中文乱码有两类,第一种是,请求对象中文乱码,即就是request对象乱码。第二种是,响应对象中文乱码,即就是response对象乱码。 1. request对象获取中文数据乱码解决方案: 1...
  • xuxuzwl
  • xuxuzwl
  • 2017-06-29 17:20:55
  • 286

idea2017.03做java web 项目解决中文乱码问题

方法一:第一步:修改配置文件进入tomcat对应版本文件夹--&amp;gt;conf--&amp;gt;serve.xml,右击用记事本打开 将&amp;lt;Connector port=&quo...
  • double_sweet1
  • double_sweet1
  • 2018-02-08 18:13:38
  • 67

java web开发时表单提交引起的一些中文乱码问题

1、pageEncoding="UTF-8"的作用是设置JSP编译成Servlet时使用的编码。  2、contentType="text/html;charset=UTF-8"的作用是指定对服务器...
  • buqideyu
  • buqideyu
  • 2014-02-21 18:51:27
  • 1036

配置Java Web中文乱码的过滤器

编写CharacterEncodingFilter类让其继承Filter,其中Filter导包应该为import javax.servlet.Filter;如果没有这个包需要配置服务器(可配置tomc...
  • DayDayPlayPhone
  • DayDayPlayPhone
  • 2015-11-12 18:37:25
  • 1986

Java web项目Linux下部署的中文乱码问题

原文摘自 :http://blog.163.com/waiting_liu/blog/static/22759605320148211524561/我们项目的开发是在windows下完成的。 然后导...
  • qq_28039297
  • qq_28039297
  • 2017-08-04 15:26:04
  • 849

javaweb开发中的中文乱码问题,使用Filter过滤器解决

get请求和post请求时候的中文乱码问题 1.当form表单中的请求为get请求的时候 例如获取用户名:String username = new String(username.getByte...
  • u012661010
  • u012661010
  • 2017-03-09 12:34:09
  • 1037
    个人资料
    持之以恒
    等级:
    访问量: 4716
    积分: 284
    排名: 27万+
    文章存档
    最新评论