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网站学习的时候经常会遇到?????这种乱码,对于刚起步的菜鸟来说真的很头痛,很容易打击继续学的信心当然了对于菜鸟的我最近也遇到过乱码问题,沉浸其中不能自拔,爱的深啊!!!!!我所遇到的 ...
随机推荐
- 1102 Invert a Binary Tree——PAT甲级真题
1102 Invert a Binary Tree The following is from Max Howell @twitter: Google: 90% of our engineers us ...
- 后端程序员之路 50、Go语言开发环境
Downloads - The Go Programming Languagehttps://golang.org/dl/ - windows下的开发环境 - 下载go1.8.1.windows ...
- Java 常见对象 02
常见对象·String类 Scanner 的概述和方法介绍 * A:Scanner 的概述 * B:Scanner 的构造方法原理 * Scanner(InputStream source) * Sy ...
- 文件查询 select name,age where age>22
# 员工信息表: 完善代码,背下来给代码加注释column_dic = {'id': 0, 'name': 1, 'age': 2, 'phone': 3, 'job': 4} # 将文件每一列的名字 ...
- redis使用ssh密钥远控靶机
首先说明一下我们的实验目的,我们这个实验需要利用一种公有密码,将公有密钥写入要攻击的服务器的redis数据库,然后使用我们自己的私钥进行远控肉鸡的操作. 实验环境:centos7(靶机,版本无太大 ...
- weblogic弱口令+后台getshell
https://www.cnblogs.com/bmjoker/p/9822886.html利用docker环境模拟了一个真实的weblogic环境,其后台存在一个弱口令,并且前台存在任意文件读取漏 ...
- Python--入门接口测试(1)
1. 什么是接口测试?为什么要做接口测试? 接口测试是测试系统组件间接口的一种测试.接口测试主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点.测试的重点是要检查数据的交换.传递和控制管理过 ...
- Python开发环境从零搭建-03-安装Python解释器并配置
想要从零开始搭建一个Python的开发环境说容易也容易 说难也能难倒一片开发人员,在接下来的一系列视频中,会详细的讲解如何一步步搭建python的开发环境 本文章是搭建环境的第3篇 讲解的内容是:安装 ...
- WorkSkill整理之 java用Scanner 类输入数组并打印
输入不确定长度的数组 import java.util.*; public static void main(String[] args){ System.out.println("请输入一 ...
- golang 遍历树状结构
以遍历Block结构为例,Block结构如下: type Block struct { Inside bool Nest int Boundary bool Incise []*Block } 可以看 ...