在WAP的开发中经常会遇到一些浏览器不支持中文的情况,这个时候要把中文GB2232转换成Unicode格式。
转换成Unicode格式并不麻烦,只需要在字符的ASCII值前面加上“#x”,后面加上“;”就可以了。
ASP+WML+Access制作
<%@ Language=VBScript %>
<% Response.ContentType="text/vnd.wap.wml"%><?xml version="1.0" encoding="gb2132"?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/DTD/wml_1.1.xml">
<%
dim conn
set conn = server.createobject("adodb.connection")
conn.open = "provider=microsoft.jet.oledb.4.0;" & "data source = " & server.mappath("data.mdb")
Set rs_placard=Server.CreateObject("adodb.Recordset")
sql="select * from placard order by id desc"
rs_placard.open sql,conn,3,3
%>
<%
Function uni(Chinese)
For i = 1 to Len (Chinese)
a=Mid(Chinese, i, 1)
uni=uni & "&#x" & Hex(Ascw(a)) & ";"
next
End Function
%>
<wml>
<card id="main" title="ASP Web">
<p>
今天时间是:<br/>
<%=Now()%>
</p>
<p><%=uni(rs_placard("placard_content"))%><br/><br/></p>
<p>Data:<%=uni(rs_placard("placard_time"))%></p>
</card>
</wml>
<%
rs_placard.close()
Set rs_placard = Nothing
conn.close()
Set conn = nothing
%>
以上显示效果为:
今天时间是:
2004-10-14 15:38:46
漫长的十一假期终于结束了,又要投入到新的工作中了,网站的更新我也将会继续,要是遇到好的教程和文章,D5S会第一时间加入到栏目中,感谢广大网友对我们的支持。
http://www.chinahtml.com
data:2004-10-8
转换函数:
<%
Function uni(Chinese)
For i = 1 to Len (Chinese)
a=Mid(Chinese, i, 1)
uni=uni & "&#x" & Hex(Ascw(a)) & ";"
next
End Function
%>
其他方法:(以下转自http://blog.csdn.net )
1.全部采用utf-8。在文件开头
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.3//EN" "http://www.wapforum.org/DTD/wml13.dtd">
<%@ page contentType="text/vnd.wap.wml; charset=UTF-8" %>
2.在web.xml中设置
<context-param>
<param-name>weblogic.httpd.inputCharset./*</param-name>
<param-value>UTF-8</param-value>
</context-param>
或者在文件里加上request.setCharacterEncoding("utf-8");
3.文件里先用检体中文写,然后找个软件把中文转成utf-8;
4.最好不要用<a href="">而改用<anchor><go href=""><postfield>,我发现传中文utf的时候,第一种情况有些模拟器不支持。
现在中文问题基本没有额外转化的处理了。