Eclipse项目中乱码问题的解决办法
一、产生的原因:
1、Http协议进行通信的时候是基于请求和响应的,传输的内容我们称之为报文!
2、Http协议会按照一定的规则将报文编码,然后在读取的时候再使用响应的解码格式进行解码!
3、这个一定的规则指的就是字符集:ASCII,iso8859-1,gbk,gb2312,utf-8
4、编码:将字符按照字符集转化为二进制格式
5、解码:将二进制代码按照响应的字符集转化为字符!
乱码的根本原因:就是编码和解码指定的字符集不一致造成的!
二、字符集:
1、ASCII字符集:美国信息交换标准代码,,单字节编码,主要用于显示现代英语
2、ISO8859-1字符集:单字节编码,ISO-8859-1收录的字符除ASCII收录的字符外,还包括西欧语言、希腊语、泰语、阿拉伯语、希伯来语对应的文字符号
3、GB2312字符集:中国国家标准简体中文字符集,收录常用汉字
4、GBK字符集:汉字内码扩展规范,向下兼容GB2312,兼容Unicode 编码,GBK是采用单双字节变长编码
5、UTF-8:是一种针对Unicode的可变长度字符编码,又称万国码,用在网页上可以统一页面显示中文简体繁体及其它语言(如英文,日文,韩文)。
三、解决办法:
1、请求报文:
浏览器编码---------->服务器解码
浏览器是按照给定页面的编码格式进行编码的,所以只需要设置网页的编码格式为utf-8就可以了!
get请求:
解码:使用的是tomcat默认的解码格式,默认是iso8859-1;
针对Get方式的乱码问题,由于参数是通过URL传递的,所以通过request设置的编码格式是不起作用的,此时可以在每次发生请求之前对URL进行编码:
例如:Location.href="/encodeURI"("http://localhost/test/s?name=中文&sex=女");
更简便的方法,那就是在服务器端配置URL编码格式:
我们在server.xml文件中设置:
<Connector URIEncoding="utf-8" connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443"/>
post请求:
解码:使用的是tomcat默认的解码格式,默认是iso8859-1;
在服务器端我们使用的是:req.setCharacterEncoding("utf-8");来设置解码格式
注意:req.setCharacterEncoding("utf-8")一定要设置在第一次获取请求参数之前!
2、响应编码
服务器编码------------->浏览器解码
1)第一种解决方案:
resp.setCharacterEncoding("utf-8");
resp.setHeader("Content-Type", "text/html;charset=utf-8");
2)第二种解决方案:
resp.setHeader("Content-Type", "text/html;charset=utf-8");
3)第三种方案:
resp.setContentType("text/html;charset=utf-8");
Content-Type
用于定义网络文件的类型和网页的编码,决定浏览器将以什么形式、什么编码读取这个文件
CharacterEncoding
作用是设置对客户端请求进行重新编码的编码 也就是说一个是设置读,一个是设置取
Eclipse项目中乱码问题的解决办法的更多相关文章
- eclipse导入web项目之后项目中出现小红叉解决办法
项目中有小红叉我遇到的最常见的情况: 1.项目代码本身有问题.(这个就不说了,解决错误就OK) 2.项目中的jar包丢失.(有时候eclipse打开时会出现jar包丢失的情况,关闭eclipse重新打 ...
- eclipse项目有红叉的解决办法
eclipse项目上有红叉,说明这个项目存在一些的问题,对于这种情况需要具体来看. 1 新导入项目的红叉 如果是新导入的项目,一般红叉就只在项目名称上面有红叉,项目下的分项上面没有,这一般是由于当初项 ...
- djang项目中的疑问及解决办法(ValueError: Invalid model reference 'apps.user.User'. String model references must be of the form 'app_label.ModelName'.)
这个问题其实就是apps.user.User这种用法是不对的,就在下面的模型中,我本来是绑定apps.user.User,但是试了一下,由于order和user是在同一个apps中,所以直接用user ...
- eclipse项目中关于导入的项目里提示HttpServletRequest 不能引用的解决办法
eclipse项目中关于导入的项目里提示HttpServletRequest 不能引用的解决办法 当使用eclipse导入外部的web工程时,有时会提示HttpServletRequest, Serv ...
- eclipse中js中文乱码问题的解决办法
在Eclipse中编辑JS文件简直是一种折磨,但是却总是很无奈得要去适应. 这里说一下Eclipse中,编辑JS文件时候,出现中文乱码问题的解决办法. 这个问题很容易想到是文件编码的问题,因此通常是修 ...
- Linux下Oracle中SqlPlus时上下左右键乱码问题的解决办法
window下的sqlplus可以通过箭头键,来回看历史命令,用起来非常的方便. 但是在Linux下,会出现各种乱码,非常不方便,如下图所示,每次打错一个字符就需要重新打一遍. 解决办法:rlwrap ...
- (tamcat控制台乱码)在idea中运行toncat后控制台出现乱码的情况解决办法(教程附图)。
详细教程: (tamcat控制台乱码)在idea中运行toncat后控制台出现乱码的情况解决办法(教程附图)._IT打工酱的博客-CSDN博客
- Linux环境下shell和vim中乱码原因及消除办法
shell和vim中乱码原因及消除办法 作者:Jack47 在Linux下开发,经常遇到乱码问题:shell或者vim中显示不了中文,或者能够显示,但不能输入中文.每次都是上网去搜,或者同事告诉我一些 ...
- eclipse项目中启动项目无法载入类
在eclipse 项目中,当载入jar包后,加载里面的包,可以找到此类,但是编译运行的时候报错java.lang.ClassNotFoundException: 1,路径名未写正确: 2,配置出错; ...
随机推荐
- AngularJS学习笔记(四) 自定义指令
指令(directive)是啥?简单来说就是实现一定功能的XXX...之前一直用的ng-model,ng-click等等都是指令.当我有一个ng没提供的需求的时候,就可以自定义个指令.指令的好处显而易 ...
- Idea_学习_05_Intellij Idea自动添加注释的方法
二.参考资料 1. Intellij Idea自动添加注释的方法
- 素数环:NYOJ--488--dfs||hdu-1016-Prime Ring Problem
/* Name: NYOJ--488--素数环 Author: shen_渊 Date: 15/04/17 15:30 Description: DFS,素数打个表,37以内就够用了 */ #incl ...
- PyQt5布局管理(1)
Qt布局管理按简单分可分为绝对位置布局和布局管理器布局 一.绝对位置布局: 组件不放在布局管理器中,通过函数setGeometry(x,y,width,height)来设定组件相对其父窗口的位置.其中 ...
- mysql编码
Mysql中文乱码问题完美解决方案 修改查看MYSQL字符集(charset) MySQL 乱码之我见 10分钟学会理解和解决MySQL乱码问题 /etc/mysql/my.cnf /etc/init ...
- dubbo monitor simple 监控原理分析
监控机制: 服务消费者和提供者,在内存中累计调用次数和调用时间,定时每分钟发送一次统计数据到监控中心.监控中心负责统计各服务调用次数,调用时间等. 监控元数据存储目录结构: --dubbo.jetty ...
- 图形化升级单机oracle 11.2.0.4 到 12.2.0.1
1. 讲补丁包上传到 Oracle server ,解压.安装 [oracle@11g tmp]$ unzip linuxx64_12201_database.zip 2. 检查当前版本 SQL> ...
- jQuery做出手风琴效果
今天学到JQuery中的遍历-siblings,便手痒做了个手风琴的动态效果,有一点收获,分享给大家.mouseout的时候一定要记得opacity必须设置,不然li的opacity会保持mousem ...
- nginx与apache 限制ip连接数和带宽方法
今天有个人问我,nginx怎么限制ip连接数,突然想不起来了,年龄大了,脑子不怎么好使了.还要看一下配置才想起了.那个人又问我,你测试过的吗?一下子把我问蒙了,我真没测试过了,也不知道启作用了没有. ...
- 一 ThreadLocal
(1) Threadlocal定义: 当使用ThreadLocal维护变量时,ThreadLocal为每个使用该变量的线程提供独立的变量副本,所以每一个线程都可以独立地改变自己的副本,而不会影响其它 ...