一、产生的原因:

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文件中设置:

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导入web项目之后项目中出现小红叉解决办法

项目中有小红叉我遇到的最常见的情况: 1.项目代码本身有问题.(这个就不说了,解决错误就OK) 2.项目中的jar包丢失.(有时候eclipse打开时会出现jar包丢失的情况,关闭eclipse重新打 ...

eclipse项目有红叉的解决办法

eclipse项目上有红叉,说明这个项目存在一些的问题,对于这种情况需要具体来看. 1 新导入项目的红叉 如果是新导入的项目,一般红叉就只在项目名称上面有红叉,项目下的分项上面没有,这一般是由于当初项 ...

eclipse项目中关于导入的项目里提示HttpServletRequest 不能引用的解决办法

eclipse项目中关于导入的项目里提示HttpServletRequest 不能引用的解决办法 当使用eclipse导入外部的web工程时,有时会提示HttpServletRequest, Serv ...

eclipse中js中文乱码问题的解决办法

在Eclipse中编辑JS文件简直是一种折磨,但是却总是很无奈得要去适应. 这里说一下Eclipse中,编辑JS文件时候,出现中文乱码问题的解决办法. 这个问题很容易想到是文件编码的问题,因此通常是修 ...

Linux下Oracle中SqlPlus时上下左右键乱码问题的解决办法

window下的sqlplus可以通过箭头键,来回看历史命令,用起来非常的方便. 但是在Linux下,会出现各种乱码,非常不方便,如下图所示,每次打错一个字符就需要重新打一遍. 解决办法:rlwrap ...

Linux环境下shell和vim中乱码原因及消除办法

shell和vim中乱码原因及消除办法 作者:Jack47 在Linux下开发,经常遇到乱码问题:shell或者vim中显示不了中文,或者能够显示,但不能输入中文.每次都是上网去搜,或者同事告诉我一些 ...

eclipse项目中启动项目无法载入类

在eclipse 项目中,当载入jar包后,加载里面的包,可以找到此类,但是编译运行的时候报错java.lang.ClassNotFoundException: 1,路径名未写正确: 2,配置出错; ...

C#项目间循环引用的解决办法,有图有真相

C#项目间循环引用的解决办法,有图有真相 程序间的互相调用接口,c#禁止互相引用,海宏软件,20160315 /// c#禁止互相引用,如果项目[订单]中有一个orderEdit单元,要在项目[进销存 ...

随机推荐

关于OC中的小数精确计算---NSDecimalNumber

NSDecimalNumber 翻译补充自:http://rypress.com/tutorials/objective-c/data-types/nsdecimalnumber 感谢乐于分享的大神 ...

Java调用Linux命令

// int tp = 1 返回执行结果  非1 返回命令执行后的输出 public static String runCommand(String cmd, int tp) { StringBuff ...

[kuangbin带你飞]专题七 线段树

ID Origin Title 228 / 440 Problem A HDU 1166 敌兵布阵   207 / 438 Problem B HDU 1754 I Hate It   ...

JavaScript中定时器的暂停和继续

对于JavaScript的定时器来说没有严格意义上的暂停和重启,只有清除停止,但是可以通过一些‘障眼法’实现 allChild[index].onclick = function(){//当点击目标且 ...

Spark学习之在集群上运行Spark

一.简介 Spark 的一大好处就是可以通过增加机器数量并使用集群模式运行,来扩展程序的计算能力.好在编写用于在集群上并行执行的 Spark 应用所使用的 API 跟本地单机模式下的完全一样.也就是说 ...

简易解说拉格朗日对偶(Lagrange duality)

引言:尝试用最简单易懂的描述解释清楚机器学习中会用到的拉格朗日对偶性知识,非科班出身,如有数学专业博友,望多提意见! 1.原始问题 假设是定义在上的连续可微函数(为什么要求连续可微呢,后面再说,这里不 ...

df -h hang 问题

此处仅截取原文中的解决方案,以便快速查找解决方法. 解决方法如下:1. systemctl restart proc-sys-fs-binfmt_misc.automount; 2. 升级到最新 sy ...

Linux初学 - Centos7忘记root密码的解决办法

开机进入启动界面后,要按照屏幕的下方的操作提示迅速按下“e”键. 按下“e”键后即来到启动文件界面,这时按键盘上面的方向键“下”,一直到文件底部,在"LANG=zh_cn.UTF-8&quo ...

Java 基础 面向对象和抽象类

面向对象变量 局部变量和成员变量区别 区别一:定义的位置不同 定义在类中的变量是成员变量 定义在方法中或者{}语句里面的变量是局部变量 区别二:在内存中的位置不同 成员变量存储在对内存的对象中 局部变 ...

.net VS2008 时间加减,时间段,时间格式化到秒

举个例子: DateTime time1 = DateTime.Now; DateTime time2 = time1.AddDays(1); time1是当前时间,time2比当前时间多一天.也就是 ...

linux eclipse乱码,Eclipse项目中乱码问题的解决办法相关推荐

  1. eclipse创建maven项目结构显示不全的解决办法

    在eclipse中创建maven项目 1.项目结构图(显示不全) 2.正常的maven项目结构图 解决办法 项目右键 ----> Properties(或Alt+Enter) ----> ...

  2. 关于Vue项目中tff报错解决办法

    在webpack.config.js中的模块配置中加如下的配置规则: {test: /\.(woff2?|eot|ttf|otf)(\?.*)?$/, use: "url-loader&qu ...

  3. Eclipse导入的项目中的中文都是乱码,如何解决?

    Eclipse导入的项目中的中文都是乱码,如何解决? eclipse之所以会出现乱码问题是因为eclipse编辑器选择的编码规则是可变的.一般默认都是UTF-8或者GBK,当从外部导入的一个工程时,如 ...

  4. eclipse中用maven多模块管理,然后主项目无法调用其他被依赖项目里的方法,解决办法

    eclipse中用maven多模块管理,然后主项目无法调用其他被依赖项目里的方法,解决办法 参考文章: (1)eclipse中用maven多模块管理,然后主项目无法调用其他被依赖项目里的方法,解决办法 ...

  5. Mac - eclipse中缺少project facets解决办法

    Mac - eclipse中缺少project facets解决办法 在2021新版的eclipse中,缺少Project Facets 选项,需要我们手动进行相关插件的安装 解决方法 1.在Help ...

  6. React项目中请求跨域解决方法

    React项目中请求跨域解决方法 今天经理给我了一个React项目地址,让我拉下来并跑起来,拉下来运行起来后,发现所有的请求都失败了,并且都是由于跨域问题导致的.花了点时间,解决了这个问题,在这里记录 ...

  7. Vue项目中你是如何解决跨域的呢?

    Vue项目中你是如何解决跨域的呢? 一.跨域是什么 跨域本质是浏览器基于同源策略的一种安全手段 同源策略(Sameoriginpolicy),是一种约定,它是浏览器最核心也最基本的安全功能 所谓同源( ...

  8. 因为返回有true ajax提示进入错误,jquery ajax中error返回错误解决办法

    转自:https://www.jb51.net/article/72198.htm 进入百度搜索此问题,发现有人这么说了一句 Jquery中的Ajax的async默认是true(异步请求),如果想一个 ...

  9. Django中的跨域解决办法 基于后端的跨域解决方案

    Django中的跨域解决办法 基于后端的跨域解决方案 1 何为跨域 在浏览器中,只要发送请求的URL的协议.域名.端口号这三者中的任意一个与当前页面地址的协议.域名.端口号不同,则称之为跨域.当发生这 ...

最新文章

  1. 捅破砂锅!这位在AI医疗埋头多年的创业者,说出了这些行业真相
  2. 微信界面代码android,仿微信界面代码安卓版
  3. python下载网络错误_下载失败,出现“网络错误”+40000
  4. (转)Web Services使用多态(XmlInclude) ,支持自定义类型
  5. IIS支持下载.config后缀名的文件
  6. QC在windows7远程执行QTP脚本无法读excel解决方案
  7. LeNet,AlexNet,Inceptionv1,2,3,4,vgg,resnet,DenseNet,网络图解对比
  8. SylixOS freescale powerpc p4080 pci msi 中断驱动
  9. 注册控件失败之一:提示0x80040200错误的处理办法
  10. AtCoder Beginner Contest 062(CD)
  11. java助教面试自我介绍,面试英语助教自我介绍
  12. Java算法实现 BAT公司为什么要考算法 github
  13. Oracle ora-12560报错的解决办法
  14. classes是什么意思怎么读_英语单词class怎么读,class的音标是什么,class是什么意思 - 音标网...
  15. centos7 java 配置_centos7下安装java及环境变量配置技巧
  16. CentOS-7-aarch64-Everything-2009和CentOS-7-aarch64-Minimal-2009,缺省装了什么?
  17. Only老K说-spa项目实现jwt验证码
  18. 一款超级简单的后台管理系统模板
  19. Open Policy Agent
  20. Springboot集成Durid远程连接数据库一直报ERROR 1045 (28000): Access denied for user

热门文章

  1. Django——admin
  2. ShadowSSdt HOOK
  3. html5弹窗布局,html实现弹窗的实例
  4. 开发那些事儿:如何解决js打包文件体积过大导致的网页加载慢问题?
  5. OneNote闪退解决方案
  6. 银行数字化转型,无尽的前沿
  7. python read三种读法
  8. mysql 乱码 重启后_天坑之mysql乱码问题以及mysql重启出现1067的错误解决
  9. PyTorch迁移学习-私人数据集上的蚂蚁蜜蜂分类
  10. 若a为int类型,且其值为3,则执行完表达式a+= a-= a*a后,a的值是