📄 解决wap中文问题,如此简单.txt
字号:
作者:qq
email: qqnethome@163.net
日期:00-5-29 下午 03:36:53
解决WAP中文问题,如此简单
为什么你的WML网页在某些移动终端上显示起来乱七八糟?尤其是中文?备受困扰的开发者们发现,有些网站上下载下来的中文界面上包含一些诸如"天下火力"之类的东西,中文问题随之解决。但是,这些东西从何而来?还有没有更简单的方式?本文将解答这些问题。
说来话长,记得有人在wapchina论坛上提出了一个问题:“WML和XML是什么关系?”。WML是XML的一种应用,而XML的缺省编码是UTF-8,也就是Unicode的8位编码方式。如果不特殊说明,那么XML将认为你采用的是UTF-8的编码方式。这就造成了一个问题,我们通常使用GB2312编码方式,几乎所有的文档内容都采用了GB2312方式,数据库中也不例外。而Unicode和GB2312的编码有很大的不同,可以说根本不一样,这是造成乱码的原因。
为什么UTF-8在XML中有特殊的地位?这本来不是本文要讨论的问题,但这个问题关系很大。在大骂XML制造者们不关心中国国情之后,我希望大家能理解这一点,任何编码方式包括什么日文,韩文,希腊文,阿拉伯文等都能轻松转换成Unicode,你可以在同一段文档中加入N种语言。虽然现有的应用软件很少采用Unicode,但Windows NT的内核却采用Unicode来处理字符。Unicode方式有两个吸引人的个性:独立且宽容(真希望每个MM都Unicode)。
如何解决这些问题,现在主要有以下的几种方法:
方法一:直接采用UTF-8编码
方法二:直接采用GB2312编码
方法三:采用字符转换的方式
方法四:配置你的应用服务直接输出UTF-8编码(适用于IIS)
下面具体来讲一下这几种方法:
方法一:直接采用UTF-8编码
这种方法无需多讲。如果你的内容可以轻易转换到UTF-8编码还需要什么呢?
坏处:需要对你的服务内容全面的转换,而且与现有的大多数应用不兼容。
方法二:直接采用GB2312编码
也很简单,在你的编码声明时,标注采用GB2312编码方式,具体做法如下,
坏处:有些终端不支持GB2312编码,仍然会有乱码。
方法三:采用字符转换的方式
就如本文开头讲到的,“天下火力”转换成中文就是“天下火力”。她的思想是用ASCII字符表现更大字符集中的字符。比如你要展现希腊文的小写的alpha。alpha在Unicode的编码中是945,16进制就是3B1,于是你写下 “α”或者“α” 显示的就是小写的alpha α 。你只需要知道汉字的Unicode编码,将其转换成“&#xXXXX;”的形式。你只要用ASCII编码方式就行了,任何平台都能处理,而且HTML也支持。本文中蓝色的天下火力就是用这种方式写的。如果你看不到,表示你的浏览器不支持这种方式。
坏处:增加了文件长度,使得带宽本来还不高的无限互连网更慢;不能直观的看到中文,万一手一抖后果不堪设想。
方法四:配置你的应用服务直接输出UTF-8编码(适用于IIS)
本来我在努力寻找简化第三种方式的方法,看了几个网友的提的要求之后,我想一定有更简单的方式,甚至不需要我做什么转换程序。于是在一个晴朗的天气里--五一劳动节,努力的劳动终于有了回报。我发现IIS的Response Object有一个属性CharSet,按微软的说法只要这么做就行:
坏处:这种方法,只适用于Windows NT下IIS的ASP编程。其他的平台和Web Server有没有如此简单的方式,如果知道了一定要告诉我,对了应该是“求您通知我一声儿,我将上门领取,OK?别忘了”。
此文引自别处。
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -