环境: 英文win2k + tomcat + 英文sqlserver2000
很简单就是用一个类读取表中内容(在库里是中文的,没问题),问题是读出来的都变成了??, 页面如下 : test.jsp
<%@ page pageEncoding="GBK"%>
<%@ page contentType="text/html;charset=GBK" autoFlush="true"%>
<%@ page import="com.test.*"%>
 
<html>
<head>
<title>test</title> 
</head>
<BODY>
<%  request.setCharacterEncoding("GBK"); 
    String testid="294";
    MyTest mt= new MyTest() ;
                      String name= mt.getName(testid);
             String username= new String(name.getBytes("ISO8859_1"));
       out.println("用户名字:"+username);
%>  
</body>
</html>

解决方案 »

  1.   

    用一个过滤器什么问题都解决,不用写什么request.setCharacterEncoding("GBK")
      

  2.   

    <%@ page pageEncoding="GBK"%>
    <%@ page contentType="text/html;charset=GBK" autoFlush="true"%>????????????????????????呵呵,不显示中文也不用两个都写上吧这个地方:MyTest mt= new MyTest() ;
                          String name= mt.getName(testid);
                 String username= new String(name.getBytes("ISO8859_1"));
           out.println("用户名字:"+username);改成:
    MyTest mt= new MyTest() ;
                          String name= mt.getName(testid);
                 String username= new String(name.getBytes("GB2312"),"ISO-8859-1");
           out.println("用户名字:"+username);试试看行不你应该把逻辑装到Action中去做就清晰了
    这么在页面上写太乱了!!!
      

  3.   

    把String username= new String(name.getBytes("GB2312"),"ISO-8859-1");
    该为String username= new String(name.getBytes("ISO-8859-1"),"GB2312");
    试试
      

  4.   

    把那该成 utf-8 就 OK 了
      

  5.   

    在web.xml中加入过渡器
    <!-- 字符编码转换 Character Encoding filter -->
    <filter>
    <filter-name>encodingFilter</filter-name>
    <filter-class>
    org.springframework.web.filter.CharacterEncodingFilter
    </filter-class>
    <init-param>
    <param-name>encoding</param-name>
    <param-value>UTF-8</param-value>
    </init-param>
    </filter>

    <!-- 字符编码的拦截器 Character Encoding filter -->
    <filter-mapping>
    <filter-name>encodingFilter</filter-name>
    <url-pattern>*.do</url-pattern>
    </filter-mapping>
      

  6.   

    看看是不是sqlserver jdbc 驱动的原因. 以前也遇到过.不管怎么转就是不显示中文,后来换个新一点的驱动,一下就好了.
      

  7.   

    1. 页面编码是否设置;2. request、response 编码是否设置,或者是否采用过滤器进行编码处理;3. 如果是地址栏上的字符,以上两项设置都是没有用的,需要更改 %TOMCAT_HOME%/conf/server.xml,在这个文件中可以找到两个 Connector 元素,在这个元素中加上“URIEncoding”属性,并将其值设为“GBK”、“UTF-8”或者是其他的编码,具体使用哪一个要看你的页面设置是哪一个,将该文件保存,重启 Tomcat 即可。4. 同时将 A href 的那个 <%=keywords%> 改为 <%=URLEncoder.encode(keywords,"GBK")%>,将引入 <%@ page import="java.net.URLEncoder" %>,那个后面的编码,根据你的实际情况更改。encode 进行编码也很重要,特别是在字符集是“UTF-8”的情况下,不使用的话,可能造成奇数个字符会产生乱码。看看这个可以帮助你吗》》