关于WAP网页查询中文的问题(还是中文编码的问题)!

paulzhang 2004-07-15 07:59:18
我做了一个数据库中中文查询的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测试的,那应该是什么编码呢?

大家有经验的朋友看看,看看我分析的对不对,然后帮我出出主意,谢谢了!
...全文
177 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
speakboy 2004-07-25
  • 打赏
  • 举报
回复
不好意思我只会PHP
paulzhang 2004-07-21
  • 打赏
  • 举报
回复
还是不行,估计要把UTF-8转成GB2312,怎么转啊?我的那个转法对不对啊?
byte[] bytes1 = SQL_Query_temp.getBytes("ISO8859-1");
String SQL_Query=new String(bytes1,"GB2312");
restart2001 2004-07-21
  • 打赏
  • 举报
回复
get提交和post提交处理方式不一样的,
xbkong 2004-07-19
  • 打赏
  • 举报
回复
你把Method写成POST试试
paulzhang 2004-07-19
  • 打赏
  • 举报
回复
我通过程序转的:代码如下,你自己看看好了!
public class Encoder {

public Encoder(){
}

/**
*将字符串转换为UTF格式
*/
public String encodeUTF(String str){
StringBuffer bfOutStr = new StringBuffer();
char[] CharArray = str.toCharArray();
for (int i = 0; i < CharArray.length; i++) {
if (CharArray[i] == '\n') {
bfOutStr.append("<br/>");
} else {
bfOutStr.append("&#x");
bfOutStr.append(Integer.toHexString(CharArray[i]));
bfOutStr.append(";");
}
}
return bfOutStr.toString();
}


/**
* 将字符串转换为GBK
* @param str
* @return
*/
private String encodeGBK(String str){
try{
return encodeUTF(new String(str.getBytes("ISO-8859-1"),"GBK"));
}catch(Exception e){return "";}
}

}
liangplay 2004-07-16
  • 打赏
  • 举报
回复
请教你在JSP中汉字怎么转成UTF-8的。汉字变成索的形式

790

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 其他移动相关
社区管理员
  • 移动开发其他问题社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧