<%@ page contentType="text ml; charset=ISO-8859-1" language="java" import="java.sql.*" errorPage="" %>
<html>
<head>
<meta http-equiv="Content-Type" content="text ml; charset=gb3212">
<title></title>
</head>

<body>
<%!
  byte[] temp_t;
  public String getStr(String str)
  {
    try
    {
      String temp_p = str;
      temp_t = temp_p.getBytes("GBK");
      String temp = new String(temp_t,"ISO-8859-1");
      return temp;
    }catch(Exception e){
      e.toString();
    }
    return null;
  }
%>
<%  
   out.println(getStr("可")); 
%>
</body>
< ml>

这里为什么编码错误呢,在IE中显示??,我已经用函数编码过了呢,怪
我的思路是这样,
1,    String temp_p = str;在内存中根据Unicode编码放入“可”字的Unicode编码;
2,    temp_t = temp_p.getBytes("GBK");得到“可”字的GBK编码;
3,    String temp = new String(temp_t,"ISO-8859-1");通过ISO-8859-1与Unicode对应表,得到temp_t
                                                 码对应的Unicode ;
4 由于我在page contentType="text ml; charset=ISO-8859-1"这样设置,Tomcat会使用ISO-8859-1来编码,输出到IE浏览器,次操作相当于temp.getBytes("ISO-8859-1");这样得到的码刚好是第二步得到的temp_1;
5 IE根据GBK码输出。