Servlet中文乱码解决方法

发布时间:2017-4-25 4:51:11 编辑:www.fx114.net 分享查询网我要评论
本篇文章主要介绍了"Servlet中文乱码解决方法 ",主要涉及到Servlet中文乱码解决方法 方面的内容,对于Servlet中文乱码解决方法 感兴趣的同学可以参考一下。

程序中的输入输出都是以流的形式保存的,流中保存的实际上全都是字节文件。

字节流和字符流的区别:

在Java.io包中操作文件内容的主要有两大类:字节流、字符流,两类都分为输入和输出操作。

在字节流中输出数据主要是使用OutputStream完成,输入使的是InputStream,主要用来处理字节或二进制对象,字节流处理单元为1个字节,操作字节和字节数组;

在字符流中输出主要是使用Writer类完成,输入流主要使用Reader类完成,主要用来处理字符或字符串,字符流处理的单元为2个字节的Unicode字符,分别操作字符、字符数组或字符串。

这四个都是抽象类

使用字符流输出数字默认被认为是ASCII

response.getWriter().write(65); 显示结果是 Aresponse.getWriter().write(65 + ""); 线上方结果为 65

字节流输出中文:

//拿到输出字节流对象ServletOutputStream sos = response.getOutputStream();byte[] bs = "大家一起去请假!!!".getBytes("UTF-8");//告诉服务端所用的编码,通知浏览器要查询的码表response.setContentType("text/html;charset=UTF-8");sos.write(bs);

字符流输出中文

public void doGet(HttpServletRequest request, HttpServletResponse response)            throws ServletException, IOException {        response.setContentType("text/html;charset=UTF-8");        response.getWriter().write("不流泪的机场");        }

下载中文文件名的文件

public void doGet(HttpServletRequest request, HttpServletResponse response)            throws ServletException, IOException {        //拿到文件的真实路径            String path = getServletContext().getRealPath("/WEB-INF/classes/借贷宝.jpg");            //创建一个输入流对象            InputStream is = new FileInputStream(path);            //处理中文文件名            String filename = path.substring(path.lastIndexOf("\\") + 1);            System.out.println("处理前的名称:" + filename);                                    ServletOutputStream sos = response.getOutputStream();            //通知浏览器以下载的方式打开,使用URLEncoder进行编码            response.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode(filename,"utf-8"));            response.setHeader("Content-Type", "application/octet-stream");            byte[] bs = new byte[1024];            int b = 0;            while((b = is.read(bs)) != -1){                sos.write(bs,0,b);            }         is.close();    }

String中 == 和 equal方法的区别 

java中 "==" 是用来比较两个String对象在内存中的存放地址是否相同;

在String中的equal方法是比较两个String对象的内容是否相同

上一篇:protobuf和thrift对比
下一篇:【酷熊科技】工作积累 ----------- Unity3D / c 语言 使用 Stringbuilder 引用头文件 using System.Text - silent

相关文章

相关评论

本站评论功能暂时取消,后续此功能例行通知。

一、不得利用本站危害国家安全、泄露国家秘密,不得侵犯国家社会集体的和公民的合法权益,不得利用本站制作、复制和传播不法有害信息!

二、互相尊重,对自己的言论和行为负责。

好贷网好贷款