标签:style blog http io ar color 使用 sp strong
Response对象代表响应
响应由三部分组成:
相关方法:
getStatus
setHeader
getWrite和getOutputStream
其中写数据可以分为两种方式
如何向客户端浏览器输出中文
这里面讲一讲编码和乱码形成的问题
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String dataString = "中国"; OutputStream outputStream = response.getOutputStream(); //要以字节流输出,所以要先把汉字转化为字节 outputStream.write(dataString.getBytes()); }
这种方式在浏览器上是没有问题的
但是在实际开发中,为了全球通用,一般是使用UTF-8
但是如果指定传输字节格式
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String dataString = "中国"; OutputStream outputStream = response.getOutputStream(); //指定汉字传输格式 outputStream.write(dataString.getBytes("UTF-8")); }
那么在浏览器上就会出现乱码(即是其他的字)
原因:
所以会解析成其他的字
servlet写给浏览器的不是汉字中国,而是它所对应的编码
计算机通讯是没有汉字通讯的,只有数字通讯
解决:
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //加入响应头 response.setHeader("Content-type", "text/html;charset=UTF-8"); String dataString = "中国"; OutputStream outputStream = response.getOutputStream(); outputStream.write(dataString.getBytes("UTF-8")); }
这样的话就没有问题了。
标签:style blog http io ar color 使用 sp strong
原文地址:http://www.cnblogs.com/tech-bird/p/4116658.html