20071207 wap charset
http://www.yippeesoft.com

在text/vnd.wap.wml后加上“;charset=charset_name”,如GB2312汉字 :text/vnd.wap.wml;charset=gb2312
好像修改无效,输出得还是·······

一、定义文档类型、字符编码  
   Response.Clear();
   Response.Buffer= true;
   Response.Charset="utf-8";  网页游戏
   //下面这行很重要, attachment 参数表示作为附件下载,您可以改成 online在线打开
   //filename=FileFlow.xls 指定输出文件的名称,注意其扩展名和指定文件类型相符,可以为:.doc    .xls    .txt   .htm  
   Response.AppendHeader("Content-Disposition","attachment;filename=FileFlow.xls");
   Response.ContentEncoding=System.Text.Encoding.GetEncoding("utf-8");  
   //Response.ContentType指定文件类型 可以为application/ms-excel    application/ms-word    application/ms-txt    application/ms-html   或其他浏览器可直接支持文档
   Response.ContentType = "application/ms-excel";
   this.EnableViewState = false;

在winwap中查看源代码会看到如下: 
  HTTP/1.1   200   OK 
  Connection:   close 
  Date:   Tue,   16   Dec   2003   15:45:54   GMT 
  Server:   Microsoft-IIS/6.0 
  X-Powered-By:   ASP.NET 
  MicrosoftOfficeWebServer:   5.0_Pub 
  X-AspNet-Version:   1.1.4322 
  Pragma:   no-cache 
  Cache-Control:   private 
  Content-Type:   text/html;   charset=utf-8 
  Content-Length:   223 
  –[   头部结束   ]—— 
  
  我用的是asp.net生成的aspx文件,IIS服务器不是会自动生成wml格式的文件的吗?但上面信息却是texb/html,正常的该是Content-Type:   text/vnd.wap.wml的 
   

    也就是说如果如果梦网发了这样的HTTP 请求
GET /default.aspx?MISC_ID=0011&MISC_SessionID=0011-8f5bfdd6!-1686912218!-505904229!1118369953846&MISC_ServiceID=08888888&MISC_AccessMode=2&MISC_MID=009999909988 HTTP/1.0
而你返回一个重定向:
HTTP/1.1 302 Found
Connection: close
Date: Fri, 17 Jun 2005 02:26:04 GMT
Server: Microsoft-IIS/6.0
X-Powered-By: ASP.NET
X-AspNet-Version: 1.1.4322
Location: /(szafdf2s5sjw4i45d2etgo55)/default.aspx?MISC_ID=0011&MISC_SessionID=0011-8f5bfdd6!-1686912218!-505904229!1118369953846&MISC_ServiceID=08888888&MISC_AccessMode=2&MISC_MID=009999909988
Cache-Control: private
Content-Type: text/html; charset=utf-8
Content-Length: 157

<html><head><title>Object moved</title></head><body>
<h2>Object moved to <a href=\’/(szafdf2s5sjw4i45d2etgo55)/default.aspx?MISC_ID=0011&MISC_SessionID=0011-8f5bfdd6!-1686912218!-505904229!1118369953846&MISC_ServiceID=08888888&MISC_AccessMode=2&MISC_MID=009999909988\’>here</a>.
</h2>
</body></html>

Content-Type: text/html; charset=utf-8和<html>的代码,MISC认为这不是正确的WML数据格式。
他们期待的是Content-Type: text/vnd.wap.wml; charset=utf-8 和 wml格式的代码。

个人建议如下:
.建议不要用cookieless="true"。要自己做会话标识,可以在每一个链接的后面添加GET参数标识当前用户,然后自己用户Cache或者HashTable维护这个用户的信息。
.首页用一个其他的页面来处理,但是要自己处理 GET参数,然后才进入Aspx的页面。
.修改IIS默认的302的返回格式,返回Content-Type: text/vnd.wap.wml; charset=utf-8 和 wml格式的代码。
.在业务首页地址或者计费地址和MISC交互的时候,最好不要使用RedirectToMobilePage.

三、当我用模拟手机浏览我的WAP网页时,汉字显示出现乱码或编译出错,我该如何设置?

以下有几种方法可以设置:

1、可在WEB服务器中设置MIME表时,在text/vnd.wap.wml后加上“;charset=charset_name”,如GB2312汉字 :text/vnd.wap.wml;charset=gb2312

Content MIME type Extension
WML text/vnd.wap.wml; charset=charset_name wml

2、若你在设计动态WAP网页时,出现汉字显示乱码,你可以在程序中将返回类型指明所使用的字符集。

在程序中,将CHARSET加在向用户浏览器发送信息的类型后, 按以下方式写:

"Content-type: text/vnd.wap.wml; charset=gb2312"。

如在ASP中: Response.ContentType = "text/vnd.wap.wml; charset=gb2312" ,在PHP、PERL等服务器端脚本中比较类似。

基于WINDOW NT 平台的IIS设置WAP Server

只要按照以下的简单设置,就可以让NT IIS成为WAP服务器,您可以撰写WML网页或者开发各种服务。

设定方式:(先确定NT Server已经安裝IIS了服务)

执行NT操作系统下的【开始】/【程序】/【Windows NT Option Pack】/【IIS 4.0】/Internet服务管理员。

在IIS服务管理员窗口內,点选主机电脑名称后,按鼠标右鍵,点选“属性”选项;

在属性窗后下部有一个文件类型按钮,单击此按钮,会出现文件类型界面;

单击‘新增类型’按钮,然后在相关的扩展名栏中填写 .wml ,在内容类型(MIME)栏中填写 text/vnd.wap.wml

单击‘确定’按钮

重复以上步骤将以下WML类型新增至MIME內:

相关的扩展名 內容类型(MIME)
.wml text/vnd.wap.wml

.wmlc application/vnd.wap.wmlc

.wmls text/vnd.wap.wmlscript

.wmlsc application/vnd.wap.wmlscriptc

.wbmp image/vnd.wap.wbmp

历史博文

标签:
九月 21, 2008 at 7:22 下午 by yippee 1,020 次
Category: Dev
Tags: