`

wap开发中中文问题的解决

阅读更多
下面这句话是从网上摘录的,仅供参考的:
JSP中中文的解决:
中国移动加入以下几句后,页面中可以直接写中文,不用转换,提交的中文直接request.getParameter("")获得,不用转换
<%@ page contentType="text/vnd.wap.wml;charset=gb2312"%>
<%response.setContentType("text/vnd.wap.wml;charset=UTF-8");%>
<%request.setCharacterEncoding("UTF-8");%>
中国联通加入以下几句后,页面中可以直接写中文,不用转换,提交的中文直接request.getParameter("")获得,不用转换
<%@ page contentType="text/vnd.wap.wml;charset=gb2312"%>
<%request.setCharacterEncoding("UTF-8");%>
操作系统win2000,Web Server resin(或tomcat)
都是从实践中摸索出来的,业务已上线,没问题。

本人解决方案:
(1)在wml文件中定义为:
<?xml version="1.0" encoding="UTF-8"?>
(2)对提交数据采用post传递
<go href="/wapapp/servlet_wap" method="post">
<!-- go href="/servlet/wap86test"  -->
<postfield name="serviceID" value="0002"/>
<postfield name="phone" value="$(phone:e)"/>
<postfield name="passwd" value="$(passwd:e)"/>
</go>
(3)后台转换
移动——>
在servlet里面的doget和dopost方法设置
request.setCharacterEncoding("UTF-8");
response.setContentType(Const.CONTENT_TYPE);//Const.CONTENT_TYPE为:text/vnd.wap.wml;charset=UTF-8
①post提交处理表单:
一般都是直接request.getParameter("xxx")取过来的就是中文了,不需要再进行转码;
如增加成员
增加成员的post代码为:
<do type="accept" label="确定"><go href="/wapapp/servlet_wap" method="post"  >
<postfield name="serviceID" value="0207"/>
<postfield name="groupname" value="按时的发射点222"/>
<postfield name="groupcode" value="4"/>
<postfield name="aphone" value="$aphone"/>
<postfield name="aname" value="$(aname:e)"/>
</go></do>
在处理编号为”0207“的程序块中,对获得的参数是这样来处理的
String groupcode = request.getParameter("groupcode");
String groupName = request.getParameter("groupname");
String ctcPhone = request.getParameter("aphone");
String ctcName = request.getParameter("aname");
ctcName = ctcName.replaceAll(" ", "");
ctcName = ctcName.replaceAll(" ", "");
if (!UserType.equals(SysChinaMobile)) {//移动的话直接getparameter的就是中文,而联通的却不是,所以需要转码
    try {
          groupName = WapUtil.decode(groupName, "UTF-8");
          ctcName = WapUtil.decode(ctcName, "UTF-8");
         } catch (Exception e) {
           e.printStackTrace();  //To change body of catch statement use File | Settings | File Templates.
           out.println(returnPrevPage(strErrosOnServerCallAdmin));
          }
}
②get提交的url参数:
如果是通过get方式,或者是通过url来传递参数的话就不能用decode这个方法来实现转码,而是用togbk这个方法来实现;
而且如果是在servlet里面打印wml页面,码制转换也只能用togbk这个方法;
如:显示个组信息首页面
请求显示修改组的页面url为:/wapapp/servlet_wap?serviceID=0212&groupcode=6&groupname=%B0%B4%CA%B1%B5%C4%B7%A8333
在处理编号为”0212“的程序块中,对获得的参数是这样来处理的
String groupcode = request.getParameter("groupcode");
String groupname = request.getParameter("groupname");
try {
        groupname = WapUtil.togbk(groupname);
        groupcode = WapUtil.togbk(groupcode);
}catch (Exception e) {
         e.printStackTrace();  //To change body of catch statement use File | Settings | File Templates.
         out.println(returnPrevPage(strErrosOnServerCallAdmin));
}

联通——>
在servlet里面的doget和dopost方法设置
response.setContentType(Const.CONTENT_TYPE);//Const.CONTENT_TYPE为:text/vnd.wap.wml;charset=UTF-8
①post提交处理表单:
需要调用decode方法进行转码;
②get提交的url参数:
需要调用togbk方法进行转码

思考:也许这不是联通与移动的问题,也许是tomcat在不同操作系统上的原因导致;

Waputil中最重要的几个方法:
WapUtil.toUrl(String gbkStr) :如果有中文参数,需要用此方法转换
WapUtil.gbk2unicode(String gbkStr):将中文转成utf-8格式的文字,显示在页面上;
WapUtil.togbk(String Utfstr):将utf格式的文字转成gbk格式,用于后台处理;
WapUtil.decode(String s, String encoding):将指定码制格式的文字转成gbk格式,用于后台处理;
分享到:
评论

相关推荐

    wap中文教程(移动开发、手机开发)

    WAP技术的核心是为了解决移动网络带宽有限的问题,它通过压缩数据和使用简化的HTML版本——WML(Wireless Markup Language)来实现。WAP允许用户通过GSM、CDMA等无线通信网络访问互联网服务,如浏览网页、发送邮件、...

    开发wap注意事项---wml中文乱码

    在进行WAP(Wireless Application Protocol)开发过程中,中文乱码问题是开发者经常会遇到的问题之一。尤其是在早期的移动互联网技术中,WML(Wireless Markup Language)作为主要的标记语言被广泛应用于WAP网页的...

    WAP编程与开发实例教程

    器建设方法,并介绍常用WAP开发工具包的使用方法。然后,本书以较大篇幅,通过大量实 例,全面而深入地讲解WML语言基础及编程方法、WMLScript语法及脚本程序设计方法、WMLS cript库及库函数、WML与WMLScript的综合...

    wap开发教程(wap编程与实例教程)

    对于有经验的开发者,这本教程可以作为查阅参考,以解决在实际工作中遇到的问题。 总的来说,《WAP开发教程(WAP编程与实例教程)》是学习和提升WAP开发技能的宝贵资源,无论你是想要踏入移动互联网开发的新手,...

    WAP开发常用资料入门学习

    WAP是为了解决移动设备的屏幕小、带宽有限等问题而设计的。它使用一种称为WML(Wireless Markup Language)的标记语言来简化网页内容,使其更适合小屏幕显示。同时,WAP还引入了WAP Gateway,作为移动网络与互联网...

    wap网站开发.pdf

    对于WAP 2.0,ASP的问题得到了解决,但仍推荐使用JSP或ASP.NET。 3. **ASP与ASP.NET**:ASP(Active Server Pages)是微软的早期服务器端脚本技术,主要用于构建动态网页。ASP.NET则是ASP的升级版,支持更现代的...

    wap网站开发[借鉴].pdf

    在WAP 2.0下,Asp的这个问题已得到解决,但在WAP 1.2的环境下,Jsp由于与中国联通和中国移动提供的接口兼容性更好,且性能更优,所以推荐使用Jsp。 4. **IIS上的WAP网站配置**: - **创建独立站点文件夹**:在IIS...

    WAP开发文档手册包含wml和wmlscript手册

    WAP开发是构建能在移动设备上运行的应用程序的过程,通常涉及WML(无线标记语言)和WMLScript。 **WML**(Wireless Markup Language)是一种基于XML的语言,专门设计用于创建适合小屏幕和有限输入设备的网页内容。...

    WAP编码转换器

    2. 网页开发:开发中文网站时,根据目标浏览器或服务器的编码需求,进行编码转换。 3. 文档处理:处理不同编码格式的文档,如电子邮件、文本文件等。 4. 数据库管理:数据库中的数据编码转换,以解决不同系统间的...

    phpBB-WAP 6 掌云社区二次开发版

    phpBB-WAP 中文版取自于 phpbb-wap.ru 中的 phpBB-WAP v8 版本,而 phpBB-WAP 是世界上知 名的 phpBB 论坛开源软件的移动终端版本。phpBB-WAP 这个名字, 是 PHP Bulletin Board Wireless Application Protocol 的...

    易语言第四代WAP浏览器

    易语言是一种专为中国人设计的编程语言,它以简体中文作为编程语句,降低了编程的门槛,使得更多的人能够参与到编程活动中。本主题聚焦于“易语言第四代WAP浏览器”,这是一种基于易语言编写的WAP浏览器软件,主要...

    phpBB-WAP中文版 The End.zip

    "The End"这个版本的命名,可能代表着phpBB-WAP开发团队对这个项目的总结和告别。这并不意味着产品将不再更新,而是意味着该版本在功能和稳定性上已经达到了一个理想状态,足以满足大部分用户的需求。对于开发者而言...

    WAP_WML页面中文批量转换器

    在WML页面的开发和维护过程中,可能会遇到各种编码问题,尤其是涉及到中文字符时。不同的设备、浏览器或者服务器可能对字符编码有不同的支持,这可能导致乱码问题。此转换器可以帮助解决这些问题,确保中文字符在...

    WAP编码转换器V1.0.0

    **WAP编码转换器V1.0.0**是一款实用工具,主要功能是进行编码格式的转换,使得用户能够在GB...在日常工作中,无论是个人还是企业,都可能遇到编码不兼容的问题,这时WAP编码转换器就能派上用场,提供便捷的解决方案。

    手机wap购物网站 html5 模板

    这款“手机WAP商城模板”正是基于HTML5开发,旨在为商家提供一个高效、便捷的移动端电商平台解决方案。 【描述】:“HTML5 WAP商城模板,很适合做WAP商城网站” HTML5 WAP商城模板的核心价值在于其对移动设备的...

    如何快速拥有新云网站内容管理系统WAP程序

    新云网站内容管理系统是一套开源WEB的网站管理系统,采用网络中已经成熟、稳定地技术ASP+Access/SQL开发而成,通过它,您可以很方便地管理自己的网站。 但是唯一遗憾的是他没有WAP界面适配。现在我们不用担心这些,...

    中国电信SMS,MMS,WAP资源详解

    在实际开发中,可能会遇到与运营商的系统集成、故障排查、日志分析等问题,这需要具备良好的问题解决能力和沟通技巧。同时,持续关注移动通信技术的发展趋势,以便及时调整和升级你的服务,保持竞争力。 综上所述,...

Global site tag (gtag.js) - Google Analytics