黑马程序员 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>、期待与您交流! ----------------------
<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>、期待与您交流! ----------------------
相关文章推荐
- tomcat下域名的配置,ROOT.xml的作用
- 设置tomcat配置文件,在Myeclipse中修改jsp文件之后不用重启tomcat
- Tomcat 网站部署(三)
- Tomcat-高并发并设置
- apache+tomcat实现session共享
- apache+tomcat负载均衡3种实现方式
- Tomcat工作原理详解
- 查看tomcat版本
- Tomcat小插曲
- Tomcat内存溢出总结
- MyEclipse启动Tomcat内存溢出解决
- tomcat+jrebel实现热部署
- Installion of JDK-8 && MyEclipse && mysql && tomcat7 in Ubuntu 12.04
- Tomcat version 5.5 only supports J2EE 1.2, 1.3, and 1.4 Web modules 问题
- tomcat6-7配置管理用户
- Apache+tomcat+mysql安装步骤
- 续:Java Tomcat 中调用.net DLL的方法 导入文件gacutil 和 regasm
- tomcat6.*不打印错误日志到控制台
- Tomcat 配置全局 log 用log4j 代替tomcat-juli
- java web 随Tomcat一起启动