javaweb 中的乱码问题
一、post 方式
首先我们看下面一段代码,在该HTML中我们指定的编码为“UTF-8”,如图所示。
在该代码中,我们将表单数据提交给ParamServlet 处理
servlet 会将接收到的数据打印到控制台
控制台会正常显示两个值
然后输入中文
提交后显示乱码
原因分析:
我们在浏览器输入汉字后,浏览器查UTF-8编码表后,将汉字转化成二进制(一个汉字在UTF-8中占三个字节)
发送给服务器处理,如果服务器没做任何控制(以tomcat为例),会默认去查ISO8859-1这个码表(一个字节代表一个字符)来解析数据
iso8859-1里没有那么多字符,有的字在iso8859-1中根本没有对应字符,就用?表示,有对应的就会显示哪些奇怪的字符,就出现了乱码喽,
所以,解决方案就出来了,我们就明确的通知我们的服务器不用ISO8859-1了,请用UTF-8
这回就不会乱码了()
另外 response 与request 相类似
代码如下:
response.setContentType("text/html;charset=utf-8");
二、get方式
以上方案只适用于post方式。因为post方式提交数据,数据在实体内容当中,而get方式提交,数据在url之中
对于get提交只能手动进行乱码解决
由于乱码的底层编码没有改变,所以我们将乱码按照ISO8859-1编码回原来的二进制,得到相应字节数组,我们再去查UTF-8码表,将二进制转换成相应字符
代码如下图:
注:以上划线代码对于post 和get方式乱码均有效。
javaweb 中的乱码问题的更多相关文章
- javaweb中的乱码问题(初次接触时写)
javaweb中的乱码问题 在初次接触javaweb中就遇到了乱码问题,下面是我遇到这些问题的解决办法 1. 页面乱码(jsp) 1. 在页面最前方加上 <%@ page language=&q ...
- javaweb中的乱码问题
0.为什么需要编码,解码, 无论是图片,文档,声音,在网络IO,磁盘io中都是以字节流的方式存在及传递的,但是我们拿到字节流怎么解析呢?这句话就涉及了编码,解码两个过程,从字符数据转化为字节数据就是编 ...
- javaweb中文中乱码分析与解决
要想解决乱码的问题, 最好的办法是先弄清楚javaweb中数据传送的原理. 本文件将简单的讲解客户端的请求和服务器响应中编码的转换过程, 以及如何解决乱码的 问题. request(req): se ...
- Javaweb编程中的乱码问题
程序中的乱码问题,主要出现在我们处理中文数据的过程中出现.从浏览器向服务器请求数据,服务器返回的数据在浏览器中显示为乱码.或者是服务器中的java文件用到中文,也有可能会出现乱码.数据库在处理数据的时 ...
- javaweb项目数据库中数据乱码
javaweb项目数据库中数据乱码 first: 排查原因: 打断点,查看到底是在执行存数据库操作之前就已经乱码了,还是存数据库操作后乱码的. 前者解决方案: 在web.xml里面加上: <fi ...
- 去哪网实习总结:JavaWeb中文传參乱码问题的解决(JavaWeb)
本来是以做数据挖掘的目的进去哪网的.结构却成了系统开发... 只是还是比較认真的做了三个月.老师非常认同我的工作态度和成果... 实习立即就要结束了,总结一下几点之前没有注意过的变成习惯和问题,分享给 ...
- JavaWeb中常见的乱码处理(亲测)
常见编码方式: ISO-8859-1 西欧码 GB2312 简体中文码 GBK 大五码 UTF-8 全球码(推荐) 1.页面(HTML,JSP,Servlet) <%@ page lan ...
- javaWeb中的文件上传下载
在Web应用系统开发中,文件上传和下载功能是非常常用的功能,今天来讲一下JavaWeb中的文件上传和下载功能的实现. 对于文件上传,浏览器在上传的过程中是将文件以流的形式提交到服务器端的,如果直接使用 ...
- javaWeb中,文件上传和下载
在Web应用系统开发中,文件上传和下载功能是非常常用的功能,今天来讲一下JavaWeb中的文件上传和下载功能的实现. 对于文件上传,浏览器在上传的过程中是将文件以流的形式提交到服务器端的,如果直接使用 ...
随机推荐
- html的两种提交按钮submit和button
转自:http://baiying.blog.51cto.com/1068039/1319784 html按钮有两种: <input type="button" value= ...
- CodeForcesGym 100753B Bounty Hunter II 二分图最小路径覆盖
关键在建图 题解:http://www.cnblogs.com/crackpotisback/p/4856159.html 学习:http://www.cnblogs.com/jackiesteed/ ...
- HDU-1700 Points on Cycle
这题的俩种方法都是看别人的代码,方法可以学习学习,要多看看.. 几何题用到向量.. Points on Cycle Time Limit: 1000/1000 MS (Java/Others) ...
- lua package.path的使用
需要用lua写一个工具,c++调用lua,然后这个lua要require其他lua脚本,在主lua里面设置package.path,但一直都失败,甚至lua都无法编译通过. project_path ...
- Java笔记(一)……概述
一.Java是什么 Java是SUN(Stanford University Network,斯坦福大学网络公司)1995年推出的一门高级编程语言. 二.Java的发展简史 在20世纪90年代初,Su ...
- PHP字符串替换函数strtr()
strtr函数比str_replace函数的效率要高很多,strtr()的两种定义方式: strtr(string, from, to)和strtr(string, array)1.strtr区分大小 ...
- Docker系列(五)OVS+Docker网络打通示例
环境说明 两个虚拟机 操作系统Centos7 DOcker版本1.8 脚本内容: 1 4 7 10 19 27 32 33 39 -j ACCEPT 47 48 # R ...
- 【Java基础】成员变量和局部变量的区别
在类中的位置不同 成员变量:在类内部方法外部 局部变量:在方法体内部定义的或者方法的参数中定义的在内存中的位置不同 成员变量:在堆内存,有初始化值,byte,short,int,long->0, ...
- POJ-1177 Picture 矩形覆盖周长并
题目链接:http://poj.org/problem?id=1177 比矩形面积并麻烦点,需要更新竖边的条数(平行于x轴扫描)..求横边的时候,保存上一个结果,加上当前长度与上一个结果差的绝对值就行 ...
- Trie树模板~~~
* + ; ; // 字母表为全体小写字母的Trie struct Trie { int ch[maxnode][sigma_size]; int val[maxnode]; int sz; // 结 ...