如果你是直接打印前面表单的内容那么可能是将编码由ISO-8859-1转化为GB2312;
如果你是对数据库操作则不需要转码;
同样从数据库提取数据打印在页面时需要将ISO-8859-1转化为GB2312;
我这里的wap环境是jdk1.5+tomcat5.0.18+jsdk2.0,除了server.xml的虚拟机外,没有修改tomcat的其他参数。
基本表单代码示例:
<%@ page contentType="text/vnd.wap.wml;charset=gb2312" %>
<?xml version="1.0" encoding="gb2312"?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/DTD/wml_1.1.xml">
<wml>
<head>
<meta http-equiv="Cache-Control" content="max-age=0" />
</head>
<card >
<p>
<input name="pro" /><br/>
<anchor>test
<go href="t.jsp" method="post">
<postfield name="pos" value="$(pos)"/>
</go>
</anchor>
<br/>
</p>
</card>
</wml>
转向的数据库操作页面:
<%@ page contentType="text/vnd.wap.wml;charset=GB2312" %>
<%
String pro;
%>
<?xml version="1.0" encoding="gb2312"?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/DTD/wml_1.1.xml">
<wml>
<head>
<meta http-equiv="Cache-Control" content="max-age=0" />
</head>
<card >
<p>
//我没有想到这里还要转码 :(-
<% request.setCharacterEncoding("UTF-8"); %>
<%
pro = request.getParameter("pro");
out.println(pro);
//sqltext 为拼写的sql语句
new String(sqltext.getBytes("GB2312"),"ISO-8859-1")
//....其他内容,
//直接打印数据库的结果内容在wap页面
%>
<br/>
</p>
</card>
</wml>
附加我写的转码的类:
package net.dmresearch.util;
import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;
/**
* 转换字符编码类
*
*/
public class Charset{
private String gb = "GBK";
/**
* 构造函数
*
*/
public Charset(){
//
}
/**
* 实现字符串的字符转换 to ISO-8859-1
*
* @param inputString 输入字符串
* @param outputString 输出字符串
*
*/
public String to_ISO(String inputString){
String outputString = inputString;
try{
String temp = new String(inputString.getBytes(),"ISO-8859-1");
outputString = temp;
}
catch(UnsupportedEncodingException uee){
//
}
if(outputString.compareTo("")==0){
//
}
return outputString;
}
/**
* 实现字符串的字符转换 to gb2312
*
* @param inputString 输入字符串
* @param outputString 输出字符串
*
*/
public String to_GB(String inputString){
String outputString = inputString;
try{
String temp = new String(inputString.getBytes(),"gb2312");
outputString = temp;
}
catch(UnsupportedEncodingException uee){
//
}
return outputString;
}
/**
* 对url进行编码
*
* @param url :包含于url的字符串
*
*/
public String enCode(String url){
String okURL = url;
try{
okURL = java.net.URLEncoder.encode(url,"UTF-8");
}
catch(java.io.UnsupportedEncodingException uee){
//res = "uee = "+uee.getMessage();
}
return okURL;
}
/**
* 对url进行编码
*
* @param url :包含于url的字符串
* @param encodeCharset :编码的目标字符
*/
public String enCode(String url,String encodeCharset){
String okURL = url;
try{
okURL = java.net.URLEncoder.encode(url,encodeCharset);
}
catch(java.io.UnsupportedEncodingException uee){
//res = "uee = "+uee.getMessage();
}
return okURL;
}
/**
* ISO to GBK
*
*/
public String ISO_2_GBK(String s_string){
try{
String des = new String(s_string.getBytes("iso-8859-1"),gb);
return des;
}
catch(Exception ex){
String des="";
return des;
}
}
/**
*
* GBK to ISO
*/
public String GBK_2_ISO(String s_string){
try{
String des = new String(s_string.getBytes(gb),"iso-8859-1");
return des;
}
catch(Exception ex){
String des = "";
return des;
}
}
}







