WAP页面中文编码的实现

<%@ Page Language="C#" %><?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/DTD/wml_1.1.xml">

<script runat="server">
    /// <summary>
    /// 页面加载
    /// </summary>
    /// <param name="sender"></param>
    /// <param name="e"></param>
    protected void Page_Load(object sender, EventArgs e)
    {
        Response.ContentType = "text/vnd.wap.wml";
    }
    
    /// <summary>
    /// Gb2312转Unicode
    /// </summary>
    /// <param name="text"></param>
    /// <returns></returns>
    protected string GB2Unicode(string text)
    {
        StringBuilder sb = new StringBuilder();
        ushort num;//short.MaxValue=0x7FFF;ushort.MaxValue=0xFFFF;
        for (int i = 0; i < text.Length; i++)
        {
            num = (ushort)text[i];
            if (num >= 0x4E00 && num <= 0x9FA5)
                sb.Append("&#x" + Convert.ToString(num, 16).ToUpper() + ";");
            else
                sb.Append(text[i]);
        }

        return sb.ToString();
    }
</script>

<wml>
<card title="Wap">
<p>
        <% Response.Write(GB2Unicode("木子屋(http://www.mzwu.com/)")); %>
</p>
</card>
</wml>

经过编码后,保证WAP页面在不同设备上均能正常显示,避免乱码的出现。

评论: 0 | 引用: 0 | 查看次数: 4186
发表评论
登录后再发表评论!