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网站学习的时候经常会遇到?????这种乱码,对于刚起步的菜鸟来说真的很头痛,很容易打击继续学的信心当然了对于菜鸟的我最近也遇到过乱码问题,沉浸其中不能自拔,爱的深啊!!!!!我所遇到的 ...
随机推荐
- 企业安全_DNS流量监控的技术选型
方案1 Windows server n ---> packbeat ---> logstash ---> kafka | ┗ ---------> elasticsearch ...
- C++入门(2):为何还学C++?
本文首发 | 公众号:lunvey 提及编程语言,最近很火的当属Python和Java,似乎C++没落了,真的是这样吗? 转行做程序员,掌握一门编程语言,也就是职业技能,我相信更多的是在乎未来发展而不 ...
- Hi3559板载u-boot、kernel及rootfs烧录过程及心得
这一篇随笔讲叙述下基于Hi3559AV100的BOXER-8410AI板载u-boot.kernel及rootfs烧录具体过程及遇到问题的解决方法与心得. 1.前期板载启动测试和烧录手段 1.1.烧写 ...
- Linux速通05 文件处理与编辑
使用 cat 命令进行文件的纵向合并 # 例:使用 cat 命令将 baby.age.baby.weight.baby.sex 这三个文件纵向合并为 baby文件 * cat baby.age bab ...
- C#扩展方法的一分钟小例子
扩展方法是静态方法,是类的一部分,但没有在类的源代码中,就像一个补丁 首先创建一个静态类,然后创建一个静态方法,重点是静态方法的参数 public static class xExtension { ...
- 如何优雅的移植JavaScript组件到Blazor
Blazor作为一个新兴的交互式 Web UI 的框架,有其自身的优缺点,如果现有的 JavaScript 组件能移植到 Blazor,无疑让 Blazor 如虎添翼,本文就介绍一下自己在开发 Bul ...
- 24端口以太网FPGA的开发板
板卡架构 板载FPGA(K7-325T)处理24端口10/100/1000M以太网数据: FPGA外挂4Gbit的DDR3颗粒,最大支持800MHz: 板载CPU进行系统配置.管理,并与客户端软件通信 ...
- php-fpm的慢执行日志
通过慢执行日志,我们可以清晰地了解PHP脚本在哪里执行时间长,可以定位到行 下面介绍如何开启和查看慢执行日志 #vim /usr/local/php-fpm/etc/php-fpm.d/www.con ...
- BIMFACE二次开发SDK 开源C#版
[ BIMFace.SDK.CSharp ] 是基于微软.NET 技术封装的用于 BIMFACE 二次开发的通用类库.其中封装了BIMFace服务端API,包含基础API.文件上传API.文件转换AP ...
- Masterwoker模式
1 public class Task { 2 3 private int id; 4 private int price ; 5 public int getId() { 6 return id; ...