⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 tom.txt

📁 Tomcat环境JSP动态网页中中文乱码问题
💻 TXT
字号:
问题一:
    Tomcat5.0环境下设计JSP动态网页时,用JDBC—ODBC桥连接SQLServer2000数据库,通过JSP网页向SQLServer2000数据库添加记录时出现中文乱码。


1.每个页面使用

<%@ page contentType="text/html; charset=GBK" language="java" import="java.sql.*" errorPage="" %>

<meta http-equiv="Content-Type" content="text/html; charset=GBK">

2.添加过滤器

在TOMCAT中找到这2个文件RequestDumperFilter.java,SetCharacterEncodingFilter.java,他们位于D:\Tomcat5.0.27\webapps\jsp-examples\WEB-INF\classes\filters,加到你的工程文件里去,编译他们。
具体添加到c:\tomcat\common\classes\filters\目录中,注意:filters是包名。

3.配置TOMCAT\conf\WEB.XML

在web.xml里加入这一段

……

<filter>

    <filter-name>Set Character Encoding</filter-name>

    <filter-class>filters.SetCharacterEncodingFilter</filter-class>

    <init-param>

      <param-name>encoding</param-name>

      <param-value>GBK</param-value>

    </init-param>

  </filter>

  <filter-mapping>

    <filter-name>Set Character Encoding</filter-name>

    <url-pattern>/*</url-pattern>

  </filter-mapping>

4.修改server.xml

在TOMCAT\conf\server.xml修改2个地方

<Connector port="8080"

               maxThreads="150" minSpareThreads="25" maxSpareThreads="75"

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

               debug="0" connectionTimeout="20000" 

               disableUploadTimeout="true" URIEncoding='GBK'/>

<Connector className="org.apache.coyote.tomcat5.CoyoteConnector"

               port="8009" minProcessors="5" maxProcessors="75"

               enableLookups="true" redirectPort="8443"

               acceptCount="10" debug="0" connectionTimeout="0"

               useURIValidationHack="false" protocol="AJP/1.3"

               protocolHandlerClassName="org.apache.jk.server.JkCoyoteHandler" 

               URIEncoding='GBK'/>

 


当进行了上述设置后,就不能再使用下列的程序段的方法进行汉字转换。若进行这样的转换反而成乱码.
	String mywords=request.getParameter("mywords");
	byte b[]=mywords.getBytes("ISO-8859-1");
	mywords=new String(b);

问题二:进行上述设定后,在Servlet程序运行时又出现乱码,解决办法:

	 response.setContentType("text/html;charset=GB2312");//设置响应的类型。
         out.println("<HTML> <BODY>");
	 String s="Simple   汉字正常 GB2312 ISO-8859_1";
	 byte b[]=s.getBytes();
	 out.println(new String(b,"8859_1"));
         out.println("</body> </html>");

















⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -