• 首 页

网站建设|北京网站建设|北京网站制作|北京网站建设首选品牌【企通互联】

http://www.qitongnet.com 网站建设咨询热线:010-65587978/77/76/75

相关文章

提高网页浏览速度的方法
网页设计非常详细的IFRAME的属性参考手册
网站制作CSS中的行为——HTC
北京网页设计网页特效:可以收缩和伸展的表格
北京网页设计DIV CSS制作网页过程中关于居中问题的总结
网页设计制作有吸引力的网站的四个原则
北京网站设计详解网页制作中使用的HTML常用标记
北京网站建设制作主页的五十个技巧
网页设计一组常用的弹出窗口用法总结
北京网站制作Banner设计手册(译)


品牌理念

北京网站建设最佳合作伙伴
北京网站建设专家企通互联
竭诚为您提供网站建设服务!


友好连接

    • 网站建设
    • 网页设计
    • 网站设计
    • 网站制作
    • 网站优化
    • 百度优化
    • google优化
    • seo
    • 网站推广
    • 网络营销
    • 北京网站建设
    • 北京网站制作
    • 北京网页设计
    • 北京网站设计

文章搜索

你的位置:首页 >> 网页设计 >> 网站制作北京网站建设页面搜索显示乱码问题解决方法

网站制作北京网站建设页面搜索显示乱码问题解决方法


作者: 北京网站建设   日期:2008-03-27 06:14:05  来源: http://www.qitongnet.com

wml在文本框中输入中文关键字搜索时,服务端获取到的值总是乱码,该如何解决?现提供一个客户端对关键字编码,服务端再解析的方法,应该可以完美的解决这一问题。

Chinaz_com

wml文件: 中国.站.长站

以下为引用的内容:北京网站设计

<?xml version="1.0" encoding="GB2312"?> 北京网站设计
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/DTD/wml_1.1.xml"> 北京网站制作北京网站建设
<wml xml:lang="zh-cn"> 北京网页设计
<card id="card1" title="卡片1"> 网站制作
<!--提交到其他页面或服务端示例--> 北京网页设计
<do type="accept"> 网页设计
输入值: 网站设计
<input type="text" name="txtKey" maxlength="20"/><br/> 北京网页设计
<go href="hol.wmls#check()" method="post"> 北京网站制作
搜索 Www.Chinaz.com 北京网站设计
</go> 网站建设
</do> 北京网站设计
</card> 网站制作
</wml> 中国站长_站,为中文网站提供动力

Wmlscript文件(hol.wmls): 站.长站

extern function check() 北京网站建设
{ 北京网页设计
    var x = WMLBrowser.getVar("txtKey"); 网站制作
    var xx = URL.escapeString(x); 北京网站设计
     网站建设
    var para = "skey=" + xx; 北京网站建设
    WMLBrowser.go("so.aspx?"+para); 网站建设
}

Chinaz.com

网页设计
服务端aspx.cs文件内容: 中国站.长.站

以下为引用的内容: 网站设计北京网站建设

private void Page_Load(object sender, System.EventArgs e) 网站设计
{ 网站制作网站设计
    // 在此处放置用户代码以初始化页面 北京网站制作
    string url = Request.RawUrl; 北京网站设计
    string key = QryStrUtil( url, "skey"); 网页设计
    key = UnEscapeString (key); 网站建设
} Www_Chinaz_com

Chinaz~com

另外还有两个方法: Www.Chinaz.com

以下为引用的内容:网站制作

/// <summary> 网页设计
/// 获取原始Url中的制定参数的值 北京网站建设
/// </summary> 北京网页设计网页设计
/// <param name="sRawUrl">原始Url</param> 网站设计
/// <param name="sKey"> 北京网站建设参数</param> 网页设计
/// <returns>值</returns> 北京网站建设
private string QryStrUtil (string sRawUrl, string sKey) 北京网站制作
{ 网站建设
    string sValue = string.Empty; 北京网站建设
    int index = sRawUrl.IndexOf('?'); 中国站.长站

    if (-1 != index && -1 != sRawUrl.IndexOf('=')) 北京网站制作
    { 网页设计
       sRawUrl = sRawUrl.Substring(index + 1,  sRawUrl.Length - index - 1);

中国站.长.站

       string[] asParaInfo = sRawUrl.Split('&'); 北京网站建设
       string _key = string.Empty; 北京网站设计
       foreach(string sParaInfo in asParaInfo) 企通互联 网站建设
       { 北京网站建设
           if (null == sParaInfo || string.Empty == sParaInfo) 网站建设
              continue; 站长.站

           index = sParaInfo.IndexOf("="); 网站建设
           if (-1 == index) 北京网站制作 www.qitongnet.com
              continue; Chinaz^com

           _key = sParaInfo.Substring(0, index); 网页设计
           if (_key == sKey) 北京网站制作
           { 企通互联
              sValue = sParaInfo.Substring(index + 1, sParaInfo.Length - index - 1); 北京网站制作
           } 网站建设
       } 企通互联
    } 北京网站设计
    return sValue; 北京网站建设
} 北京网页设计
/// <summary> 网站制作
/// 汉字编码反转换 网站制作
/// </summary> 北京网站制作
/// <param name="s"></param> 网页设计
/// <returns></returns> 北京网站制作
private string UnEscapeString(string s) 北京网站建设
{ 北京网站制作
    string sub1, sub2, sub3; 北京网站建设
    while(-1 != s.IndexOf('%')) 网页设计
    { 北京网页设计
       sub1 = s.Substring(0, s.IndexOf('%')); 中国站.长.站 企通互联
       sub2 = s.Substring(sub1.Length,6); 北京网页设计
       sub3 = s.Remove(0, sub1.Length + sub2.Length);

Www^Chinaz^com

       sub2 = sub2.Remove(0,1); 中国站长.站

       string[] scode = sub2.Split('%'); 网页设计
       Byte[] bCodes = new byte[scode.Length]; 网站设计
       for(int i=0; i<scode.Length; i++) 北京网站建设
       { 北京网页设计
           int sh,sl,val; 网页设计
           string code = scode[i]; 网站设计
           sh = Convert.ToInt32(code.Substring(0,1),16); 北京网站制作
           sl = Convert.ToInt32(code.Substring(1,1),16); Www^Chinaz^com

           val = sh * 16 + sl; 北京网站制作
           bCodes[i] = Convert.ToByte(val.ToString(),10); 网站建设
       } 网站设计
       sub2 = Encoding.GetEncoding("gb2312").GetString(bCodes); 网站建设
       s = sub1 + sub2 + sub3; 网站制作
    } 网站设计
    return s; 网站设计
}

中.国.站.长.站

中国站.长站

北京网页设计
至此,该方法以全部完毕,Page_Load中得到的key就是原输入字符串的原形。在这里提供EscapeString方法。

中国站.长.站

以下为引用的内容:网站设计

/// <summary>  北京网站建设
/// 汉字编码转换(该方法还不完美,会对字母及数字等编码) 网站设计
/// </summary> 北京网站建设
/// <param name="s"></param> 网站建设
/// <returns></returns> 网站建设
public string EscapeString(string s) 企通互联
{ 北京网站建设
    string res = string.Empty; 北京网站制作
    Byte[] bCodes = Encoding.GetEncoding("gb2312").GetBytes(s); 网站设计
    ASCIIEncoding ascii = new ASCIIEncoding(); 北京网站建设
    for(int i=0;i<bCodes.Length ;i++) 北京网页设计
    { 北京网站制作
       int val = bCodes[i];

中.国站长站
网页设计
       val = (val < 0) ? val+256 : val; 企通互联
       int sh,sl; 北京网站制作
       sh = val/16; 网站制作
       sl = val%16; Chinaz_com

       res += "%"; 网站制作
       res += Convert.ToString(sh,16); 网站建设
       res += Convert.ToString(sl,16); 北京网站建设
    } 北京网站设计
    return res; 网站制作
} Www~Chinaz~com

中.国站长站

细心的读者会发现,如果用EscapeString编码,再用UnEscapeString来解码,可能会错误。所以这里,仅对全角及中文字符编码即可。不过这里暂时不需要同时用到这两个方法,在此把这个方法加上,仅是对wmlscript的escapeString方法的原理进行一下说明。 中国站.长站

注:该方法的 网页设计wmlscript解释是。这个函数计算生成s t r i n g的一个新版本。在这个版本中, [ R F C 1 7 3 8 ]规定的特殊字符(非安全字符、保留字符和不可打印字符)被一个十六进制的转义序列取代,给定的字符串可以这样转义;这个函数可以不进行U R L分析。根据[ R F C 1 7 8 3 ]的规定,对于U n i c o d e字符集中编码等于或者小于0 x F F的特殊字符,使用双数字格式的转义序列% x x。

Chinaz

网站制作
字体:【大】【中】【小】

上一篇:企通互联页面搜索显示乱码问题解决方法

下一篇:北京网站设计构建Blog全程实录-Dreamweaver构建Blog

这是一个与众不同的品牌,企通互联只专注于网站建设领域!中小型企业网站建设最佳合作伙伴!网站建设咨询热线:010-65587978/77/76/75!

Copyright © 2008 网站建设|北京网站建设|北京网站制作|北京网站建设首选品牌【企通互联】. Designed by www.qitongnet.com Free Website Templates