打印

关于WAP网页查询中文的问题

我做了一个数据库中中文查询的WAP网页,我是用WINWAP模拟器的,编码方式是UTF-8,我在input中

输入中文,然后传递给另外一个JSP中查询!
代码片断如下:
index.jsp
……
       <p>
       <input  title="搜索" name="searchVar"  type="text" value=""         

           maxlength="8" size="8"/><br/>
        <anchor title="Go There">搜索!<go href="searchResult.jsp#s">
        <postfield name="itemType" value="搜索结果:" />
        <postfield name="searchVar" value="$searchVar"/>
        </go></anchor><br/>
        </p>

……

searchResult.jsp:
……
         DBConnection dbc1 = new DBConnection();

         String SQL_Query_temp = "";
         SQL_Query_temp = "get ItemInfo(name,id,itemtype_en) from /wap_DB/ItemInfo/

where (name like '%" +searchVar+ "%') or (itemdesc like '%" +searchVar+ "%') order by

releasedate desc";


         byte[] bytes1 = SQL_Query_temp.getBytes("ISO8859-1");
         String SQL_Query=new String(bytes1,"GB2312");


         try{
                dbc1.openConnection();
                 ResultSet kr1 = dbc1.executeQuery(SQL_Query);

……

我来对上面的代码做个解释:首先,我对传递过来的中文(这里的SQL语句大家看了有点陌生,是我

们引擎上用的,和SQL一样的。)放在SQL中,然后把它转码,转成GB2312的,这样,就好查询了,

因为数据库中的中文编码是GB2312的。
我在WINWAP中测试,这样是可以查询的,没有问题的,TOMCAT的DEBUG中的SQL语句能显示我在进行

中文查询工作。

  

可是,我把上述程序在手机中跑就不行了,手机中能接受传递进来的中文参数,如果我在searchRes

ult.jsp中<%=searchVar%>也能正常显示我传递进来的中文的,可是,我这么一转成GB2312就不行了

,我在TOMCAT中的DEBUG看到的中文是乱码!如果我不转,直接放进去查询,还是不行!

我觉得,问题出在byte[] bytes1 = SQL_Query_temp.getBytes("ISO8859-1");在WINWAP中,INPUT

中的中文编码是默认的ISO8859-1,可是,在手机的浏览器中,就不是了,是什么呢?我是用nokia

7250测试的,那应该是什么编码呢?

大家有经验的朋友看看,看看我分析的对不对,然后帮我出出主意,谢谢了!