<%@ page contentType="text/html; charset=UTF-8" language="java" import="java.sql.*" errorPage="" %>
<html>
<head>
<title>无标题文档</title>
</head><body>
中文中文
</body>
</html>按道理说UTF8是支持中文的,为什么当我打开这个网页全都是乱码????
<%@ page contentType="text/html; charset=gb2312" language="java" %>
<html>
<head>
<title>无标题文档</title>
</head><body>
<form name="form1" method="post" action="">
<input type="text" name="ok">
<input type="submit" name="Submit" value="提交">
</form><%
  String str = request.getParameter("ok");
  
  if(str == null) {
    str = "";
  }
  String str1 = new String(str.getBytes("GBK"));
%>
<%=str1%>
</body>
</html>我的系统是windows2000支持GBK
这里,我用GBK,和UTF-8都不行只能用ISO-8859-1,为什么阿?
还有String str1 = new String(str.getBytes(),"ISO-8859");
用这个构造器,竟然不起作用?

解决方案 »

  1.   

    参考
    http://bbs.gzit.org/viewthread.php?tid=184
      

  2.   

    这个试试
    <%@page pageEncoding="GBK" contentType="text/html; charset=GBK" %>
      

  3.   

    <%@ page contentType="text/html; charset=UTF-8" language="java" import="java.sql.*" errorPage="" %>
    <%@ page contentTpe="text/html; charset=gb2312" language="java" %>这两个编码都不一样
      

  4.   

    <%@page pageEncoding="GBK" contentType="text/html; charset=GBK" %>这个不行,刚试了
    刚忘了说我是tomcat5的String str1 = new String(str.getBytes(),"ISO-8859");
    这个构造器,用不成这是怎么回事?
      

  5.   

    再试试这个<%request.setCharacterEncoding("GBK"); %>
      

  6.   

    编码方式指定一下,一般的话用UTF-8(国际化),还有就是设置一下你的应用服务器连接池的characterEncoding和8080端口的URIEncoding,最好是自己再加一个Filter
      

  7.   

    我试过charset=GBK
    然后再加上String str1 = new String(str.getBytes(),"GBK");
    str1的显示就没有问题了,如果写入到文件则要
    FileOutputStream os.write(lsSQL.getBytes("GBK"));
      

  8.   

    我的tomcat端口URIEncoding还是UTF8,但无影响。
      

  9.   

    晕,为什么我不行?????到底是哪里乱码??页面还是连控制台,数据库都是乱码页面,我只是想试一下编码,没想到出了这么大乱子,我的只能ISO-8859-1别的都是乱码
    不知道是不是和tomcat的版本有关
      

  10.   

    eeeee,各位谢了,我今天查到资料了,然后总结了一下由于jsp/servlet默认输出到客户端是ISO-8859-1
    String str1 = new String(str.getBytes(),"ISO-8859");
    而这个方法是先让str(ISO-8859-1)以GBK编码(system默认)然后又解码成iso-8859-1
    所以有乱码,
    page contentType="text/html; charset=gb2312
    而这个试网页输出,和str的处理无关,所以不管改成什么jsp/servlet默认输出str依旧是iso-8859-1编码
    不只我的解释是否正确,