关闭

java web 中文乱码

标签: javajava web开发人员乱码
41人阅读 评论(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 也都传到后台了

0
0
查看评论
发表评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场

Java Web项目中文乱码以及解决办法

一、中文乱码说明  在Java Web项目中,由于pageEncoding、contentType和charset等编码属性的设置不恰当往往导致显示中文字符会出现乱码问题。例如,在Java Web项目...
  • loster_Li
  • loster_Li
  • 2016-10-10 19:28
  • 773

中文乱码之填坑Java web

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

JavaWeb工程在Linux下的中文乱码问题汇总

在windows下开发的JavaWeb项目,运行测试没有任何问题,后来部署到阿里云租来的linux服务器上,结果遇到了各种问题,解决也花费了不少时间,还是来总结一下。     1、secureCRT...
  • yx0628
  • yx0628
  • 2014-03-05 19:28
  • 2134

javaWEB中前后台中文乱码问题解决方法

中文问题一直是很多人难以解决的问题。特别是从前台传到后台之后,都不知道问题出在哪里了。现在给出几种解决的方法。 方法一: tomcat的自带编码是ISO-8859-1的格式,是不兼容中文的编码的。所以...
  • yangxin_blog
  • yangxin_blog
  • 2015-11-06 15:54
  • 2181

Java web后台insert数据库中文乱码,即insert中文出现???

问题描述:Java web后台insert数据库中文乱码,即insert中文出现???,但是本地windows环境测试正常,有以下三个地方的问题 1.project的编码格式和linux生产环境有差异...
  • birduncle
  • birduncle
  • 2017-05-19 13:56
  • 604

Java Web 中文乱码问题总结

java web 乱码
  • shandian534
  • shandian534
  • 2015-09-12 17:21
  • 1278

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

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

java web项目各种乱码的解决方案

原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本人声明。否则将追究法律责任。 作者:永恒の_☆ 地址:http://blog.csdn.net/chenghui0317...
  • ch656409110
  • ch656409110
  • 2013-08-25 17:03
  • 20949

web应用开发中中文乱码问题

web应用中中文乱码问题在java程序中,出现中文乱码问题的原因的根源在于java程序和其他存储媒介互换数据时,两者编码方案不同。 常见的中文字符编码: GB2312-80 GB2312是简体汉字...
  • destination_zhy
  • destination_zhy
  • 2016-05-18 13:04
  • 2173

java web中配置Filter解决jsp中文乱码问题

具体的做法:    建立一个实现 Filter 接口的类。这个类需要三个方法,分别是: doFilter 、 init 和 destroy 。 doFilter 方法包含主要的过滤代码, init 方...
  • yinxianluo
  • yinxianluo
  • 2014-11-22 21:00
  • 1113
    个人资料
    • 访问:661次
    • 积分:189
    • 等级:
    • 排名:千里之外
    • 原创:15篇
    • 转载:2篇
    • 译文:0篇
    • 评论:1条
    文章分类
    文章存档
    最新评论