字符-->字节、字节-->字符时需要用到编码(Encoder)、解码(Decoder)

几种编码:

ASCII:总共128

ISO-8859-1:涵盖大部分西欧语言字符。一个字符一个字节表示

gbk2312:包含6000多的汉字,一个英文字符一个字节表示,一个汉子两个字节表示。

gbk:包含20000多个汉字,包含gbk2312所有编码。

utf-16:每个字符用两个字节表示。jvm的编码方式。效率最高

utf-8:英文用一个字节表示,汉字用三个字节表示。适合网络之间传输的编码方式。

Servlet:

1.接收get方式,得到的是与页面编码方式一样的,但解码需要在服务器配置文件中修改。可以用一种不正常的方式解决,如String的构造函数,

new String(request.getParameter("name").getBytes("ISO-8859-1"),"utf-8")

1.1get方式还可以修改tomcat配置文件添加编码与工程编码一致,如下:

<Connector URIEncoding="utf-8" connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443"/>

2.接收post方式需要在web.xml中配置一下过滤器

 <!-- post乱码过虑器 -->
<filter>
<filter-name>CharacterEncodingFilter</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>utf-8</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>CharacterEncodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>

MySQL:

要与数据库的编码一致:url="jdbc:mysql://localhost:3306/DB?useUnicode=truecharacterEncoding=gbk"

JS/html:

默认编码是utf-8

常见问题:

1.中文变成看不懂的字符:gbk-->iso-8859-1

2.一个汉子变成一个问号:iso-8859-1-->iso-8859-1

3.一个汉子变成两个问号:gbk-->iso-8859-1-->gbk-->gbk

可以加微信群一起交流

springmvc后台取值中文乱码问题的更多相关文章

  1. 解决cookies取值中文乱码问题

    存入cookie 取出cookie 分别需要编码和解码, 注:要统一

  2. 解决SpringMVC的@ResponseBody返回中文乱码

    SpringMVC的@ResponseBody返回中文乱码的原因是SpringMVC默认处理的字符集是ISO-8859-1,在Spring的org.springframework.http.conve ...

  3. 【转】asp.net Cookie值中文乱码问题解决方法

    来源:脚本之家.百度空间.网易博客 http://www.jb51.net/article/34055.htm http://hi.baidu.com/honfei http://tianminqia ...

  4. Webform动态创建删除行及后台取值

    开发过程中经常碰到许多不确定事项,所以有时需要动态生成新的记录,如图所示,点击新增时新增一条参考记录,点击删除时则删除该记录:第一步,创建一个表格,用hidden记录当前最大行数,添加时则只需复制模板 ...

  5. 前台改变asp button控件的值,后台取值没有改变的问题

    前台: <asp:Button ID="btnEdit" Style="margin-left: 600px;" runat="server&q ...

  6. chrome 和IE 上传的文件,在net 后台取值Request.Form.Files[0].FileName 的不同

    chrome 和IE 上传的文件,在net 后台取值Request.Form.Files[0].FileName 的不同 chrome 获得的是不含路径的纯文件名 IE获得的是含路径的文件名

  7. js从后台取值并绑定到元素上

    用ajax从后台取值不是什么有技术含量的活计,把后台取来的值绑定到Vue对象上也不算难,但每一次向后台拿数据的时候都得写上这么一段代码就十分痛苦了. 于是我写了这么一小段js代码,能够自己根据url去 ...

  8. EL表达式取值中文再发送请求时会乱码

    问题描述: 在网站底部进行评论,点击提交按钮时,后台tomcat报错,通过火狐浏览器的firebug看到发送的POST请求体中,有一个title参数是乱码, 导致该字段超长违反了数据库字段的长度约束: ...

  9. SpringMVC开发过程中的中文乱码问题

    相信大家在开发初期遇到中文乱码问题一定是一头雾水,不是数据库乱码了就是页面乱码了或者传值时乱码.其实解决乱码的途径很简单,就是统一编码与解码的类型,我把自己遇到的乱码问题整理出来,希望能够对大家有用. ...

随机推荐

  1. stderr,stdout,a.txt缓冲区别

    #include<stdlib.h>#include<stdio.h>#include<string.h>#include<error.h>#inclu ...

  2. 高仿QQ Xplan的H5页面

    概述 这个h5的主要玩法很简单:地球自转的时候会播放背景音乐(比如海浪声),为了找到这个声音是从哪个地球上哪个地方传来的,需要长按下方的按钮,这时地球会自动转动到目标地点,然后镜头拉近,穿过云层,最后 ...

  3. ThreadLocal 简述

    ThreadLocal的理解 Java中的ThreadLocal类允许我们创建只能被同一个线程读写的变量.因此,如果一段代码含有一个ThreadLocal变量的引用,即使两个线程同时执行这段代码,它们 ...

  4. 【ZOJ2760】How Many Shortest Path

    How Many Shortest Path 标签: 网络流 描述 Given a weighted directed graph, we define the shortest path as th ...

  5. SQL查询练习一(From LeetCode)

     请选用MySQL进行测试. 1.找出后一天比前一天温度高的日期(E) 思路:将该表进行自关联,然后选择出日期靠后的一天,最后选择温度高的日期 select Weather.Id from Weath ...

  6. 【学习笔记】Struts2 类型转换

    为什么需要类型转换 在基于HTTP协议的Web应用中 客户端请求的所有内容(表单中提交的内容等)都以文本编码的方式传输到服务器端但服务器端的编程语言(如Java)有着丰富的数据类型 如 int boo ...

  7. 框架学习笔记之Maven简介和配置

    一.什么是Maven?★Maven可翻译为“知识的积累”.“专家”.“内行”,它是一个跨平台的项目管理工具.★Maven提供了开发人员构建一个完整的生命周期框架,开发团队可以自动完成项目的基础工具建设 ...

  8. 新人学习selenium哪些资源比较有帮助?

    为什么学习selenium? selenium现在基本上成了页面自动化测试的标配,具体理由我在selenium 3.0发布这篇文章里已经说明过了.当一个东西成为标准以后,那么它的能量和潜力都是巨大的. ...

  9. hihoCoder 403 Forbidden 字典树

    题意:给定个规则,个ip,问这些ip是否能和某个规则匹配,如果有多个规则,则匹配第一个.如果没能匹配成功,则认为是"allow",否则根据规则决定是"allow" ...

  10. Hadoop序列化与Java序列化

    序列化就是把内存中的对象的状态信息转换成字节序列,以便于存储(持久化)和网络传输 反序列化就是就将收到的字节序列或者是硬盘的持久化数据,转换成内存中的对象. 1.JDK的序列化 只要实现了serial ...