首页 > 代码库 > Servlet中文乱码解决方法
Servlet中文乱码解决方法
程序中的输入输出都是以流的形式保存的,流中保存的实际上全都是字节文件。
字节流和字符流的区别:
在Java.io包中操作文件内容的主要有两大类:字节流、字符流,两类都分为输入和输出操作。
在字节流中输出数据主要是使用OutputStream完成,输入使的是InputStream,主要用来处理字节或二进制对象,字节流处理单元为1个字节,操作字节和字节数组;
在字符流中输出主要是使用Writer类完成,输入流主要使用Reader类完成,主要用来处理字符或字符串,字符流处理的单元为2个字节的Unicode字符,分别操作字符、字符数组或字符串。
(这四个都是抽象类)
使用字符流输出数字默认被认为是ASCII
response.getWriter().write(65); 显示结果是 A response.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("不流泪的机场"); }
下载中文文件名的文件
Servlet中文乱码解决方法
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。