字符-->字节、字节-->字符时需要用到编码(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. JavaWeb项目架构之NFS文件服务器

    NFS简介 NFS(Network File System)即网络文件系统. 主要功能:通过网络(局域网)让不同的主机系统之间可以共享文件或目录. 主要用途:NFS网络文件系统一般被用来存储共享视频, ...

  2. 网络配置:linux学习第一篇

    1.      先使用dhclient获取ip 再使用命令ip addr查看获取到的ip 2.      设置静态IP 编辑网卡配置文件,路径: 3.      重启网络服务 命令:systemctl ...

  3. Redis Sentinel安装与部署,实现redis的高可用

    前言 对于生产环境,高可用是避免不了要面对的问题,无论什么环境.服务,只要用于生产,就需要满足高可用:此文针对的是redis的高可用. 接下来会有系列文章,该系列是对spring-session实现分 ...

  4. MySQL创建带有编码的数据库

    mysql> create database chao default character set utf8 collate utf8_general_ci;

  5. js收藏代码

    js收藏代码~ 1. oncontextmenu="window.event.returnValue=false" 将彻底屏蔽鼠标右键 <table border oncon ...

  6. iOS7控制中心会覆盖由下向上的手势

    Expect users to swipe up from the bottom of the screen to reveal Control Center. If iOS determines t ...

  7. LIMS系统仪器数据采集-使用xpdf解析pdf内容

    不同语言解析PDF内容都有各自的库,比如Java的pdfbox,.net的itextsharp. c#解析PDF文本,关键代码可参考: http://www.cnblogs.com/mahongbia ...

  8. 前端JS面试题汇总 Part 2 (null与undefined/闭包/foreach与map/匿名函数/代码组织)

    原文:https://github.com/yangshun/front-end-interview-handbook/blob/master/questions/javascript-questio ...

  9. Mysql给某一台主机授权访问,修改root密码

    ubuntu上用的是phpstudy,安装好之后,敲mysql,提示没有,需要安装mysql的客户端. 安装好之后直接敲mysql,敲 mysql 再敲use mysql 再敲mysql -uroot ...

  10. 关于HTTP,你知道哪些?

    HTTP简介 HTTP 的全称是 Hypertext Transfer Protocol,超文本传输协议 规定客户端和服务器之间的数据传输格式 让客户端和服务器能有效地进行数据沟通 HTTP 协议是网 ...