<%@language="javascript" codepage="936"%>
<% response.contenttype="text/vnd.wap.wml" %>
<!doctype wml public "-//wapforum//dtd wml 1.1//en" "http://www.wapforum.org/dtd/wml_1.1.xml">
<wml>
<head>
</head>
<%
var description=request("description");
%>
<card>
<br>
测试:(<%=description%>)<br/>
<input>
<a href="test.asp?description=$(description:e)">提交..</a><br/>
</p>
</card>
</wml>
输入: 中文测试
结果显示: 涓枃娴嬭瘯
结果分析:字符变成utf-8编码,需要重新做utf-8 => gb2312的转换处理
示例2:文件以普通ansi编码方式保存
<%@language="javascript" codepage="936"%>
<% response.contenttype="text/vnd.wap.wml" %>
<!doctype wml public "-//wapforum//dtd wml 1.1//en" "http://www.wapforum.org/dtd/wml_1.1.xml">
<wml>
<head>
</head>
<%
var description=request("description");
%>
<card>
<p>
测试:(<%=description%>)<br/>
<input>
<anchor>提交..<go href="test.asp"><postfield></go></anchor><br/>
</p>
</card>
</wml>
输入: 中文测试
结果显示: %e4%b8%ad%e6%96%87%e6%b5%8b%e8%af%95
结果分析:这是对字符进行了encodeuri编码,只需要执行js方法decodeuri即可
注:以上示例表明用querystring和post还是有所区别的
示例3:文件以utf-8编码方式保存
<%@language="javascript" codepage="936"%>
<% response.contenttype="text/vnd.wap.wml" %>
<!doctype wml public "-//wapforum//dtd wml 1.1//en" "http://www.wapforum.org/dtd/wml_1.1.xml">
<wml>
<head>
</head>
<%
var description=request("description");
%>
<card>
<p>
测试:(<%=description%>)<br/>
<input>
<a href="test.asp?description=$(description:e)&operate=guestbook_save">提交..</a><br/>
</p>
</card>
</wml>
输入:中文测试
结果显示:中文测试
结果分析:因为文件用utf-8编码方式保存,所以接收端直接获得了utf-8的字符
示例4:
<%@language="javascript" codepage="936"%>
<% response.contenttype="text/vnd.wap.wml" %>
<!doctype wml public "-//wapforum//dtd wml 1.1//en" "http://www.wapforum.org/dtd/wml_1.1.xml">
<wml>
<head>
</head>
<%
var description=request("description");
%>
<card>
<p>
测试:(<%=description%>)<br/>
<input>
<anchor>提交..<go href="test.asp"><postfield></go></anchor><br/>
</p>
</card>
</wml>
输入:中文测试
结果显示:%e4%b8%ad%e6%96%87%e6%b5%8b%e8%af%95
结果分析:因为提交时设置了进行escape转换,所以不受文件编码方式的影响
可是用anchor+go的方法写实在是有点浪费,a简洁的多,也更节省wml的字节数,那么就可以试试以下方法,文件以普通ansi编码方式保存
<%@language="javascript" codepage="936"%>
<% response.contenttype="text/vnd.wap.wml" %>
<!doctype wml public "-//wapforum//dtd wml 1.1//en" "http://www.wapforum.org/dtd/wml_1.1.xml">
<wml>
<head>
</head>
<template>
<do type="prev" label="返回">
<go href="#nav"/>
</do>
</template>
<%
function unicode2gb(str,oldcharset,newcharset){
var stream=new activexobject("adodb.stream")
stream.type=2
stream.mode=0
stream.open()
stream.charset=newcharset
stream.writetext(str)
stream.position= 0
stream.type= 2
stream.charset=oldcharset
var s=stream.readtext()
stream.close()
return s;
}
var t=new date();
var description=string(request("description"));
description=unicode2gb(description,"utf-8","gb2312");
%>
<card>
<p>
测试:(<%=description%>)<br/>
<input>
<a href="test.asp?description=$(description:e)&operate=guestbook_save">提交..</a><br/>
</p>
</card>
</wml>
输入:中文测试
结果显示:中文测试
或者你想用utf-8编码方式保存文件,那就这样
<%@language="javascript" codepage="936"%>
<% response.contenttype="text/vnd.wap.wml" %>
<!doctype wml public "-//wapforum//dtd wml 1.1//en" "http://www.wapforum.org/dtd/wml_1.1.xml">
<wml>
<head>
</head>
<template>
<do>
<go href="#nav"/>
</do>
</template>
<%
function unicode2gb(str,oldcharset,newcharset){
var stream=new activexobject("adodb.stream")
stream.type=2
stream.mode=0
stream.open()
stream.charset=newcharset
stream.writetext(str)
stream.position= 0
stream.type= 2
stream.charset=oldcharset
var s=stream.readtext()
stream.close()
return s;
}
var t=new date();
var description=string(request("description"));
description=unicode2gb(description,"utf-8","gb2312");
description=description.replace(/[^\u0000-\u00ff]/g,function($0){return escape($0).replace(/(%u)(\w{4})/gi,"&#x$2;")});
%>
<card>
<p>
测试:(<%=description%>)<br/>
<input>
<a href="test.asp?description=$(description:e)&operate=guestbook_save">提交..</a><br/>
</p>
</card>
</wml>
输入:中文测试
结果显示:中文测试
以上代码由asp+js完成,因为js没有基于“位”的字符操作功能,所以借助了ado.stream来做了这个转换,希望能给大家一点帮助(当然,我知道大多数asp开发者都是习惯用vbs的)
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 注册表 操作系统 服务器 应用服务器