热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

SSH传参中文乱码问题解决方法

2019独角兽企业重金招聘Python工程师标准①自己编写filter类publicclassCharsetEncodingFilterimplementsFilter{pr

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

   自己编写filter

public class CharsetEncodingFilter implements Filter {

private String charsetEncoding = null;

private String enable = null;

public void destroy() {

this.charsetEncoding = null;

this.enable = null;

}


public void doFilter(ServletRequest request, ServletResponse response,

FilterChain arg2) throws IOException, ServletException {

if(this.enable.equals("true")) {

request.setCharacterEncoding(charsetEncoding);

response.setContentType("text/html;charset=" + charsetEncoding);

arg2.doFilter(request, response);

}

}


public void init(FilterConfig config) throws ServletException {

this.charsetEncoding = config.getInitParameter("CharsetEncoding");

this.enable = config.getInitParameter("enable");

}

}

说明:上面的encoding根据你用的编码类型决定,在这里我用utf-8

  web.xml中配置上面的filter

<filter>

        <filter-name>charFilterfilter-name>

        <filter-class>com.landtofrest.util.EncodingFilterfilter-class>

    filter>

    <filter-mapping>

        <filter-name>charFilterfilter-name>

        <url-pattern>/*url-pattern>

filter-mapping>

说明&#xff1a;是上面filter类的路径&#xff1a;包.类名

      命名随便

      直接在web.xml配置如下&#xff1a;

SpringCharacterEncodingFilter

org.springframework.web.filter.CharacterEncodingFilter

encoding

UTF-8

SpringCharacterEncodingFilter

/*

  tomcat中配置server.xml,我的是MYEclipse自带的。我在myEclipse里面找不到tomcatserver.xml。而是在workspace->.metadata->.me_tcat->conf->server.xml那里找到

修改&#xff1a;

 

               connectionTimeout&#61;"20000"

               redirectPort&#61;"8443" URIEncoding&#61;"UTF-8"/>

URIEncoding&#61;"UTF-8"/>

 

说明&#xff1a;红色部分是要添上去的

 

  应该可以运行了&#xff01;&#xff1f;页面参数传到action在控制台输出已经不是乱码&#xff0c;可是数据库查询还是查不到记录&#xff0c;后面查了很多资料&#xff0c;才知道&#xff0c;mysql中编码也是有讲究的。

找到mysql安装目录&#xff0c;打开my.ini文档&#xff0c;把这句default-character-set&#61;Latin1改成这样子default-character-set&#61;utf8。注意是default-character-set有两句哟。

 

说明&#xff1a;如果在建表时下面的第⑤步已经做了的话&#xff0c;第④步是没有必要滴。

如果已经做了第④步&#xff0c;第⑤步中建表时有没有必要在指定引擎后再添加DEFAULT CHARSET &#61;utf8&#xff0c;这个我还没有试验

 

  应该可以运行了&#xff01;&#xff1f;还是不行。

因为我在mysql用命令【show create table 表名;】查看自己在建表的时候默认的是Latin1&#xff0c;所以得改过来&#xff0c;建表时应该【create 表名&#xff08;&#xff09;ENGINE&#61;引擎 DEFAULT CHARSET &#61;utf8;】。

或者这样比较麻烦&#xff0c;可以有另一种办法就是在建表之前用【set names utf8;】命令&#xff0c;这样在关闭mysql之前都用utf8而不用再在建每个表都是这样。

   你会发现如果用【set names utf8;】而没改的话&#xff0c;用insert插入数据时就出现data too long的错误&#xff0c;所以&#xff0c;用想要插入得用【set names gb2312或者gbk;】&#xff0c;习惯用gbk&#xff0c;这样就可以插入数据了。


转:https://my.oschina.net/u/553734/blog/59909



推荐阅读
  • Spring常用注解(绝对经典),全靠这份Java知识点PDF大全
    本文介绍了Spring常用注解和注入bean的注解,包括@Bean、@Autowired、@Inject等,同时提供了一个Java知识点PDF大全的资源链接。其中详细介绍了ColorFactoryBean的使用,以及@Autowired和@Inject的区别和用法。此外,还提到了@Required属性的配置和使用。 ... [详细]
  • 在重复造轮子的情况下用ProxyServlet反向代理来减少工作量
    像不少公司内部不同团队都会自己研发自己工具产品,当各个产品逐渐成熟,到达了一定的发展瓶颈,同时每个产品都有着自己的入口,用户 ... [详细]
  • http:my.oschina.netleejun2005blog136820刚看到群里又有同学在说HTTP协议下的Get请求参数长度是有大小限制的,最大不能超过XX ... [详细]
  • 本文介绍了南邮ctf-web的writeup,包括签到题和md5 collision。在CTF比赛和渗透测试中,可以通过查看源代码、代码注释、页面隐藏元素、超链接和HTTP响应头部来寻找flag或提示信息。利用PHP弱类型,可以发现md5('QNKCDZO')='0e830400451993494058024219903391'和md5('240610708')='0e462097431906509019562988736854'。 ... [详细]
  • web.py开发web 第八章 Formalchemy 服务端验证方法
    本文介绍了在web.py开发中使用Formalchemy进行服务端表单数据验证的方法。以User表单为例,详细说明了对各字段的验证要求,包括必填、长度限制、唯一性等。同时介绍了如何自定义验证方法来实现验证唯一性和两个密码是否相等的功能。该文提供了相关代码示例。 ... [详细]
  • YOLOv7基于自己的数据集从零构建模型完整训练、推理计算超详细教程
    本文介绍了关于人工智能、神经网络和深度学习的知识点,并提供了YOLOv7基于自己的数据集从零构建模型完整训练、推理计算的详细教程。文章还提到了郑州最低生活保障的话题。对于从事目标检测任务的人来说,YOLO是一个熟悉的模型。文章还提到了yolov4和yolov6的相关内容,以及选择模型的优化思路。 ... [详细]
  • Spring源码解密之默认标签的解析方式分析
    本文分析了Spring源码解密中默认标签的解析方式。通过对命名空间的判断,区分默认命名空间和自定义命名空间,并采用不同的解析方式。其中,bean标签的解析最为复杂和重要。 ... [详细]
  • 本文讨论了在Spring 3.1中,数据源未能自动连接到@Configuration类的错误原因,并提供了解决方法。作者发现了错误的原因,并在代码中手动定义了PersistenceAnnotationBeanPostProcessor。作者删除了该定义后,问题得到解决。此外,作者还指出了默认的PersistenceAnnotationBeanPostProcessor的注册方式,并提供了自定义该bean定义的方法。 ... [详细]
  • eclipse学习(第三章:ssh中的Hibernate)——11.Hibernate的缓存(2级缓存,get和load)
    本文介绍了eclipse学习中的第三章内容,主要讲解了ssh中的Hibernate的缓存,包括2级缓存和get方法、load方法的区别。文章还涉及了项目实践和相关知识点的讲解。 ... [详细]
  • ZSI.generate.Wsdl2PythonError: unsupported local simpleType restriction ... [详细]
  • MyBatis多表查询与动态SQL使用
    本文介绍了MyBatis多表查询与动态SQL的使用方法,包括一对一查询和一对多查询。同时还介绍了动态SQL的使用,包括if标签、trim标签、where标签、set标签和foreach标签的用法。文章还提供了相关的配置信息和示例代码。 ... [详细]
  • r2dbc配置多数据源
    R2dbc配置多数据源问题根据官网配置r2dbc连接mysql多数据源所遇到的问题pom配置可以参考官网,不过我这样配置会报错我并没有这样配置将以下内容添加到pom.xml文件d ... [详细]
  • Spring学习(4):Spring管理对象之间的关联关系
    本文是关于Spring学习的第四篇文章,讲述了Spring框架中管理对象之间的关联关系。文章介绍了MessageService类和MessagePrinter类的实现,并解释了它们之间的关联关系。通过学习本文,读者可以了解Spring框架中对象之间的关联关系的概念和实现方式。 ... [详细]
  • 网络请求模块选择——axios框架的基本使用和封装
    本文介绍了选择网络请求模块axios的原因,以及axios框架的基本使用和封装方法。包括发送并发请求的演示,全局配置的设置,创建axios实例的方法,拦截器的使用,以及如何封装和请求响应劫持等内容。 ... [详细]
  • SpringMVC接收请求参数的方式总结
    本文总结了在SpringMVC开发中处理控制器参数的各种方式,包括处理使用@RequestParam注解的参数、MultipartFile类型参数和Simple类型参数的RequestParamMethodArgumentResolver,处理@RequestBody注解的参数的RequestResponseBodyMethodProcessor,以及PathVariableMapMethodArgumentResol等子类。 ... [详细]
author-avatar
宋十七
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有