主题:编码,编码,一定要懂
<%@ 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码输出。
<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码输出。