当前位置:沸点梦工场 > WAP网页设计 > Jsp wap开发教程 > 浏览文章

JSP制作WAP网站时中文字符问题的一些解决办法

互联网 2007年06月04日 【字体:
我奉命花了将近3个月的时间来做一个wap网站,使用的是jsp,然后操作无非是一些

从数据库中读出东西,然后动态生成wml,然后显示在手机上。和在手机上录入一些东西

然后保存到数据库中。做的过程中,我深深地体会到了java和wml对中文字符集支持的差

劲。当然,3个月时间也没有学到什么东西。我把自己总结的一些制作过程中碰到的中文

字符问题和解决方法拿出来,希望对以后碰到那些讨厌问题的同志有点帮助。



最开始我是在模拟手机上开发的,就是那个up的浏览器,对wmls支持的比较差劲。

因为我的手机是西门子的35系列。所以主要用的是up的模拟手机。如果碰到wml语法错误

的话,我就把nokia的那个toolkit打开。那东西老费我内存。不过两个结合起来用,感觉

是可以解决不少问题。



wap服务器我用的是tomcat,准确的说应该是web服务器。那东西对中文支持好想也

不怎么地,不过好象是我没有好好研究它的配置。resin其实挺爽的,中文支持好,编译

速度快。不过我也没有好好研究他的配置,搞得我每次改了jsp页面有时可以刷新,有时

不能刷新,一气之下,我又换tomcat了。



呵呵~~言归正传吧。现在说一下从数据库中读出中文字符后在wml夜面中的显示。



windows中文版的操作系统使用汉字编码为GBK(关于怎样查找操作系统使用的字符

编码,您可以使用这段代码:摘自ibm developerWorks<java编程技术中汉字问题的分

析及解决>http://www.cn.ibm.com/developerWorks/java/java_chinese/index.shtml



public class PoorChinese {

public static void main(String[] args) {

System.getProperties().list(System.out);

}

}



而wml(1.1版本)支持的字符集只有3种,大部分手机使用的字符集直接就是UTF-8,

于是您需要在显示汉字的时候将数据库中的GB2312(它和GBK是兼容的)的东西动态地

转化成UTF-8的东西。这两种字符集的转换很容易实现。算法就是对字符串中的每个

字符找到它的内码(hex格式的X****),然后在头的地方放个"&#",在尾的地方放个";"