wml语言的基本知识
上一节我们介绍了wml程序的基本结构,接下来我们介绍wml语言的基本知识,主要包括wml的字符集、变量、数据类型及wml程序的基本组成部分等。
5.3.1 wml的字符集及编码
wml使用xml的字符集,即通用字符集iso/iec-10646,也即统一字符编码标准unicode 2.0。同时,wml还支持其他系列的字符集子集,例如utf-8、iso-8859-1或ucs-2等。其中:
utf-8是指通用字符集ucs(universal character set)的转换格式8(transformation format 8),主要用作传输国际字符集的转换编码。utf-8采用了ucs字符的8位编码,提供了十分安全的编码格式,可以有效避免数据传输过程中的窃听、截取及非法解密。同时,utf-8与7位ascii码完全兼容,不会影响此类编码实现的程序;它的编码规则十分严格,能够有效避免同步传输错误,而且还为支持其他字符集提供了足够的空间。
iso-8859-1字符集是国际标准化组织iso(international standardization organization)制定的ascii字符集的扩展集,能够表示所有西欧语言的字符。与 iso latin-1一样,iso-8859-1与windows环境中普遍使用的美国国家标准协会ansi(american national standards institute)的字符集极为类似,绝大多数情况下无需区分。在不特别指明的情况下,http协议均使用iso latin-1字符集。因此,为了在wml页面中表示非ascii(non-ascii)字符,开发人员需要使用相应的iso latin-1编码的字符。
ucs-2是iso 10646标准中定义的通用多8位编码字符集(universal multiple-octet coded character set)的2字节(即16位)编码标准,其字符编码值与unicode字符的标准编码值相等。
wml文档可以采用html 4.0规范所定义的任何字符编码标准进行编码处理。一般说来,wml文档的字符编码时需要转换为另外的编码格式,以与wap用户的手机浏览器所用字符标准相适应,否则,手机浏览器就无法显示wml页面中的字符。然而,编码转换时可能会丢失一些字符信息,所以,如果在用户端进行wml文档的编码转换,那么就可能导致某些结果信息丢失而不能被用户所浏览。因此,如有必要,我们应当尽量在wml页面传送到用户浏览器之前完成编码转换。
为了解决这一问题,一方面,我们需要为web服务器补充定义wml的数据类型,以让服务器可以准确传输这些数据,另一方面,我们需要制定编码转换的原则。
上一章我们曾经讲过,设置web服务器时也增加wml的数据类型,即“内容类型(content-type)”,它是通过对web服务器的mime设置进行配置的。我们补充定义的wml及wmlscript数据类型共有8种,其中前4种为必选,后4种可根据需要选用:
wml:text/vnd.wap.wml
wmlc:application/vnd.wap.wmlc(经过编码wml的数据类型)
wmls:text/vnd.wap.wmlscript
wbmp:image/vnd.wap.wbmp (bmp图像)
wmlsc:application/vnd.wap.wmlscriptc
wmlscript:text/vnd.wap.wmlscript
ws:text/vnd.wap.wmlscript
wsc:application/vnd.wap.wmlscriptc
Java Asp PHP .Net XML C/C++ CGI VB Jsp J2ee J2se J2me EJB Servlet Tomcat Resin Struts Weblogic Eclipse ANT GUI JMS Web servise IDEA Webphere Hibernate Spring Jboss Applet Swing Socket Javamail Perl Ajax P2P 安全 模式 框架 测试 开源 游戏
Windows XP Windows 2000 Windows 2003 Windows Me Windows 9.x Linux UNIX 注册表 操作系统 服务器 应用服务器