您的位置:首页 > 运维架构 > Tomcat

黑马程序员 jsp乱码,sevlet乱码,struts乱码,tomcat乱码,get乱码,post乱码 解决方式

2014-03-22 12:18 417 查看
----------------------
<a href="http://edu.csdn.net"target="blank">ASP.Net+Unity开发</a>、<a href="http://edu.csdn.net"target="blank">.Net培训</a>、期待与您交流! ----------------------

一、Servlet,jsp,输出乱码

第1种方式:t.write(str.getBytes("utf-8"))。

       第2种方式:response.setHeader("content-type","text/html;charset=utf-8");

      第3种方式:response.setContentType("text/hmtl;charset=utf-8");

 
 第4种方式:<%@ page language="java" pageEncoding="UTF-8"%>

<%@ page contentType="text/html;charset=iso8859-1"%>

 
第5种方式:html中解决

<head>
<title>中文问题</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>

  第6种方式:

System.out.println(new
String(testString.getBytes(”ISO-8859-1〃),”gb2312〃));
System.out.println(new String(testString.getBytes(”UTF8〃),”gb2312〃));
System.out.println(new String(testString.getBytes(”GB2312〃),”gb2312〃));
System.out.println(new String(testString.getBytes(”GBK”),”gb2312〃));
System.out.println(new String(testString.getBytes(”BIG5〃),”gb2312〃));

第7种方式:

对于流行的Tomcat来说,有以下两种解决方法:

 1)
更改 D:\Tomcat\conf\server.xml,指定浏览器的编码格式为“简体中文”:

  方法是找到
server.xml 中的

   <Connector
port="8080" maxThreads="150" minSpareThreads="25" maxSpareThreads="75"

   enableLookups="false"
redirectPort="8443" acceptCount="100"

   connectionTimeout="20000"
disableUploadTimeout="true" URIEncoding='UTF-8' />

特别注意:response.setContentType("text/html;charset=utf-8")要放在PrintOut
out = response.getWriter()代码的前面,否则只是有告诉客户端用什么码表编码的功能,而服务器端还是用ISO-8859-1编码了。再特别提示下:在同一Servlet中的doGet或doPost方法中,不能既用response.getOutputStream又用response.getWriter,因为这两种response的响应输出字节流与字符流是冲突的,只能用其一。

二、GET方式的乱码:

如<a href=”/demo5/servlet/RD2?name=中国”>CN</a>,直接用request.getParameter得到的字符串strCN将会乱码,这也是因为GET方式是用http的url传过来的默认用iso-8859-1编码的,所以首先得到的strCn要再用iso-8859-1编码得到原文后,再进行用utf-8(看具体页面的charset是什么utf-8或gbk)进行解码即可。newString(strCn.getBytes(“ISO-8859-1”),“UTF-8”);

三、POST方式的乱码:只需要request.setCharacterEncoding("UTF-8"):即可。

[java] view
plaincopy

request.setCharacterEncoding("UTF-8");  

String name = request.getParameter("name");
 

---------------------- <a href="http://edu.csdn.net"target="blank">ASP.Net+Unity开发</a>、<a
href="http://edu.csdn.net"target="blank">.Net培训</a>、期待与您交流! ----------------------
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: