day19(乱码解决方案)
乱码的解决方案:
首先需要理解乱码的产生原因:无非就是编码格式的问题
1.服务器到浏览器
字节流传输时
产生乱码的原因:
1.浏览器打开方式不对(打开时 的方式为默认的方式,各个浏览器的方式都不同)
2.中文转字节数组
解决方案:
ServletOutputStream outputStream = response.getOutputStream();
response.setHeader("Content-Type", "text/html;charset=utf-8");//设置响应头部
outputStream.write("成功".getBytes());
outputStream.close();
字符流传输时
产生乱码的原因:
字符流传输时是存在缓存区的,response获得字符流,
缓冲区中的默认编码格式为ISO-8859-1码,这个字符不支持中文;
解决方案1
response.setHeader("Content-Type", "text/html;charset=utf-8");
response.setCharacterEncoding("utf-8");
response.getWriter().print("中文1");
解决方案2
response.setContentType("text/html;charset=utf-8");
response.getWriter().print("中文1");
2.浏览器到服务器乱码
乱码产生分为两类doGet和doPost
doGet乱码原因
浏览器-------url-------服务器
在请求时:数据在url中对数据进行了一次编码(ISO-8859-1);
浏览器----(ISO-8859-1编码)----url-------服务器
在传递的过程中都是使用字节传输的。
解决方案:
在服务器解决乱码:获取传递参数是先使用ISO-8859-1解码称为字节
再使用UTF-8进行重新编码
new String(request.getParameter(String name).getByte("ISO-8859-1"),"UTF-8");
doPost乱码原因
浏览器-----缓冲区(ISO-8859-1)-----服务器
只需要修改缓冲区编码格式就可以了
request.setCharacterEncoding("UTF-8");
3.编码格式转换
url进行编码
java.net.URLDecoder.decode(String s,String enc);
将application/x-www-form-urlencoded字符串转换成普通字符串。 java.net.URLEncoder.decode(String s,String enc);
将普通字符串转换成application/x-www-form-urlencoded字符串。
day19(乱码解决方案)的更多相关文章
- IntelliJ IDEA 乱码解决方案 (项目代码、控制台等)
IntelliJ IDEA 乱码解决方案 (项目代码.控制台等) 最近IDE从eclipse改成IntelliJ IDEA 了,原因是公司大部分人都在用这个IDE,而且一直推荐用,所以尝尝鲜.换的第一 ...
- aspx页面,中文乱码解决方案
由于文件编码方式编码方式不统一出现样式中文乱码解决方案: 今天碰到的问题:页面字体样式设置的'微软雅黑',可页面没引用.我调试看到样式出现中文乱码了 这种问题,就需要转换文件的编码方式,如下两步即可解 ...
- 【转】Ubuntu乱码解决方案(全)
转自:http://www.cnblogs.com/end/archive/2011/04/19/2021507.html ubuntu下中文乱码解决方案(全) 1.ibus输入法 Ubuntu 系统 ...
- JSP中pageEncoding和charset区别,中文乱码解决方案(转载)
转载自:JSP中pageEncoding和charset区别,中文乱码解决方案 JSP指令标签中<%@ page contentType="text/html;charset=GB23 ...
- boost::xml——基本操作以及中文乱码解决方案 (续)
本博文主要想说明以下两点: 1.对于上一篇的<boost::xml——基本操作以及中文乱码解决方案>解释,这篇博文基本解决了正确输入输出中英文问题,但是好像还没有解决修改中文出现乱码的问题 ...
- css中文字体乱码解决方案
css中文字体乱码解决方案:把css编码和html页面编码统一起来.如果html页面是utf-8.css.js也统一成utf-8编码.还有一个避免中文乱码的办法就是把中文字体写成英文来表示 css中文 ...
- 基于Windows环境下cmd/编译器无法输入中文,显示中文乱码解决方案
基于Windows环境下cmd/编译器无法输入中文,显示中文乱码解决方案 两个月前做C++课设的时候,电脑编译器编译结果出现了中文乱码,寻求了百度和大神们,都没有解决这个问题,百度上一堆解释是对编译器 ...
- Intellij Idea乱码解决方案
使用Intellij Idea经常遇到的三种乱码问题: 1.工程代码乱码 2.main方法运行,控制台乱码 3.tomcat运行,控制台乱码 解决方案: 1.工程代码乱码 Settings > ...
- JS传值中文乱码解决方案
JS传值中文乱码解决方案 一.相关知识 1,Java相关类: (1)java.net.URLDecoder类 HTML格式解码的实用工具类,有一个静态方法:public static String ...
随机推荐
- 4K - 找新朋友
新年快到了,“猪头帮协会”准备搞一个聚会,已经知道现有会员N人,把会员从1到N编号,其中会长的号码是N号,凡是和会长是老朋友的,那么该会员的号码肯定和N有大于1的公约数,否则都是新朋友,现在会长想知道 ...
- dpdk优化相关 转
注:本文是参照了一些其他文章,原文地址点击这里. 首先根据这篇文章进行了性能瓶颈的分析 策略与方法 首先根据木桶原理,首先要找到最弱的地方,怎么找往上看↑. 想能优化需要考虑如下: 优化BIOS设置 ...
- python提取分析表格数据
#/bin/python3.4# -*- coding: utf-8 -*- import xlrd def open_excel(file="file.xls"): try: d ...
- Luogu 2173 [ZJOI2012]网络 - LCT
Solution $LCT$ 直接上$QuQ$ 注意$cut$ 完 需要 $d[u + c * N]--$ 再 $link$, 不然会输出Error 1的哦 Code #include<cs ...
- day 3:注释,缩进
本节内容: 1,注释 2,缩进 1,注释: 使用#可以注释单行 # print("hello world") 三个双引号也可以注释多行 """ pri ...
- cron Linux下的定时执行工具
说明:测试平台 Ubuntu 16.04.4 LTS cron是一个Linux下的定时执行工具,可以在无需人工干预的情况下运行作业.所以,在Linux中,周期性执行的任务一般由cron这个守护进程来 ...
- eclipse中tomcat调试正确关联源码
1.build path中jar包关联本地源码 2.tomcat中添加source关联工程lib下的jar包 以上两步即可. 可解决tomcat直接关联本地源码debug时无法计算表达式的情况. 错误 ...
- Serial-mcu
任务: PC按下1键, mcu连续发送a, 当PC按下2键, 终止发送 查询: #include <reg52.h> #define uint unsigned int #define u ...
- sqli-labs:24,二次注入
二次排序注入 二次排序注入也称为存储型注入,就是将可能导致 sql 注入的字符先存入到数据库中,当再次调用这个恶意构造的字符时,就可以出发 sql 注入. 二次排序注入思路: 1. 黑客通过构造数据的 ...
- apicloud模块开发知识点
1. 没有加模块的时候dex里面的包 \android\support\annotation \android\support\v4 \com\uzmap\pkg \compile 2. 不能混淆的类 ...