JAVAEE_Servlet_17_关于乱码问题
关于乱码问题
* 数据传递过程中的乱码
解释:数据传递过程中的乱码是指: 将数据从浏览器发送给服务器的时候,服务器接收到的数据是乱码的。
- ISO-8859-1 是国际标准码,不支持中文编码,它兼容ASCII码,又称为latin1编码,不管是哪个国家的文字,在浏览器发送给服务器的时候,都会采用ISO-8859-1编码进行编译。
- 乱码原因:浏览器会先把将要发送给服务器的数据,转化成对应的ISO-8859-1编码,然后将编码后的数据发送给Web服务器,而服务器并不知道在转化之前数据采用的是哪个国家的语言。
- 解决方式 1:先将服务器中接收到的数据采用ISO-8859-1编码方式解码,解码成为二进制数据,然后给定一种支持简体中文的编码方式重新编码组装。
// 先解码 ISO-8859-1
byte[] bytes= 接收数据的变量名.getBytes("ISO-8859-1");
// 再编码 使用 GBK / utf8 / gb2312
new String(bytes,"GBK/utf8/gb2312"); // 此处保证和HTML和浏览器的编码方式一致
- 解决方案 2:(只支持POST请求,只对请求体编码,并且要设置在取数据之前)
- void setCharacterEncoding(String 编码名);
request.setCharacterEncoding("UTF-8");
- 解决方案 3: (只支持GET请求,只对请求行编码)
1. 修改 Catalina_HOME/conf/server.xml (Tomcat根目录)
2. 在 server.xml中找到 <Connector port="8080" protocol="HTTP/1.1"> 在该标签内添加属性 URIEncoding="UTF-8"/>,也就是: <Connector port="8080" protocol="HTTP/1.1" URIEncoding="UTF-8"/>
3. <Connector > 标签中都可以写哪些属性? tomcat-9\webapps\docs\config\Http.html 该html中的属性都可以写。
* 数据展示过程中的乱码
解释:数据展示过程中的乱码是指:数据显示在浏览器页面的时候出现乱码
- 解决方法1: - 设置响应的字符类型,以及对应的编码方式
response.setContentType("text/html;charset=UTF-8");
- 解决方法2: - 设置HTML文件的编码方式和浏览器编码方式一致
<meta content="text/html" charset="UTF-8">
* 数据保存过程中的乱码
解释:数据保存过程中的乱码是指: 数据保存到数据库中表里的时候出现乱码
- 情况1: 在保存前就出现乱码,保存到数据库中就会乱码。找出为什么乱码,采取上面的方法解决乱码问题。
- 情况2: 保存前不是乱码, 但是因为数据库不支持简体中文,所以出现乱码。 设置数据库的编码方式。
JAVAEE_Servlet_17_关于乱码问题的更多相关文章
- java web 学习十(HttpServletRequest对象1)
一.HttpServletRequest介绍 HttpServletRequest对象代表客户端的请求,当客户端通过HTTP协议访问服务器时,HTTP请求头中的所有信息都封装在这个对象中,通过这个对象 ...
- win10 环境 gitbash 显示中文乱码问题处理
gitbash 是 windows 环境下非常好用的命令行终端,可以模拟一下linux下的命令如ls / mkdir 等等,如果使用过程中遇到中文显示不完整或乱码的情况,多半是因为编码问题导致的,修改 ...
- java中文乱码解决之道(一)-----认识字符集
沉寂了许久(大概有三个多月了吧),LZ"按捺不住"开始写博了! java编码中的中文问题是一个老生常谈的问题了,每次遇到中文乱码LZ要么是按照以前的经验修改,要么则是baidu.c ...
- Sublime Text 3中文乱码解决方法以及安装包管理器方法
一般出现乱码是因为文本采用了GBK编码格式,Sublime Text默认不支持GBK编码. 安装包管理器 简单安装 使用Ctrl+`快捷键或者通过View->Show Console菜单打开命令 ...
- java字符乱码
在java中处理字符时,经常会发生乱码,而主要出现的地方在读取文本文件时发生,或者是写入到文件中,在其他地方打开乱码. 如下例子: BufferedReader br = null; try { br ...
- MAC下 mysql不能插入中文和中文乱码的问题总结
MAC下 mysql不能插入中文和中文乱码的问题总结 前言 本文中所提到的问题解决方案,都是基于mac环境下的,但其他环境,比如windows应该也适用. 问题描述 本文解决下边两个问题: 往mysq ...
- ThinkPHP+Smarty模板中截取包含中英文混合的字符串乱码的解决方案
好几天没写博客了,其实有好多需要总结的,因为最近一直在忙着做项目,但是困惑了几天的Smarty模板中截取包含中英文混合的字符串乱码的问题,终于解决了,所以记录下来,需要的朋友看一下: 出现乱码的原因: ...
- 【云知道】究极秒杀Loadrunner乱码
Loadrunner乱码一击必杀 之前有介绍一些简单的针对Loadrunner脚本或者调试输出内容中乱码的一些设置,但是并没能完全解决一些小伙伴的问题,因为那些设置实在能力有限,还是有很多做不到的事情 ...
- 新手学习web遇到的一些乱码问题
在新手学习web网站学习的时候经常会遇到?????这种乱码,对于刚起步的菜鸟来说真的很头痛,很容易打击继续学的信心当然了对于菜鸟的我最近也遇到过乱码问题,沉浸其中不能自拔,爱的深啊!!!!!我所遇到的 ...
随机推荐
- Kubernetes和docker----1.开始使用k8s和docker
开始使用Kubernetes和docker docker命令 运行一个容器 docker run busybox echo "Hello world" 构建容器镜像 docker ...
- BigDecimalUtil:对double类型的数据进行处理(加减乘除、四舍五入、类型转换、比较两个值的大小)
该工具类所在的包:import java.math.BigDecimal; 项目中使用该工具类的相关代码: // 如果Output表中已经存在该节点(插入数据的节点)的信息,则修改Output表中的这 ...
- 基于【腾讯云函数】/【GitHub Actions】/【Docker】的每日签到脚本(支持多账号使用)
每日签到集合 基于[腾讯云函数]/[GitHub Actions]/[Docker]的每日签到脚本 支持多账号使用 特别声明: 本仓库发布的脚本及其中涉及的任何解锁和解密分析脚本,仅用于测试和学习研究 ...
- vue关于导航守卫的几种应用场景
beforeEach 该钩子函数主要用来做权限的管理认证 router.beforeEach((to, from, next) => { if (to.matched.some(record = ...
- jQuery实现游戏推荐
1.需求:点击添加游戏按钮实现添加游戏,点击删除按钮,删除游戏. 2.实现思路:分别给添加按钮和删除按钮添加click事件. 3.遇到的问题:自己添加的游戏不能进行删除. 4.原因分析:文档加载完毕后 ...
- 翻译:《实用的Python编程》04_01_Class
目录 | 上一节 (3.6 设计讨论) | 下一节 (4.2 继承) 4.1 类 本节介绍 class 语句以及创建新对象的方式. 面向对象编程(OOP) 面向对象编程是一种将代码组织成对象集合的编程 ...
- gRPC在 ASP.NET Core 中应用学习
一.gRPC简介: gRPC 是一个由Google开源的,跨语言的,高性能的远程过程调用(RPC)框架. gRPC使客户端和服务端应用程序可以透明地进行通信,并简化了连接系统的构建.它使用HTTP/2 ...
- slickgrid ( nsunleo-slickgrid ) 1 开篇有益
slickgrid (nsunleo-slickgrid) 1 开篇有益 作为专职的程序猿,自认为是老菜鸟或老民工,以前一直在某浪上写博客,上知天文,下达地理.做了N年的.net,又转Java,从 ...
- BeetleX使用bootstrap5开发SPA应用
在早期版本BeetleX.WebFamily只提供了vuejs+element的集成,由于element只适合PC管理应用开发相对于移动应用适配则没这么方便.在新版本组件集成了bootstra ...
- github个人主页 阿里云域名的绑定
域名解析 我在阿里云上买了一个新域名:gaolu.name,我已经在GitHub Pages上建立了自己的博客:http://gaolu1215.github.io.现在我希望将gaolu.name映 ...