wml在文本框中输入中文关键字搜索时,服务端获取到的值总是乱码的解决方法
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就是原输入字符串的原形。
――――――――――――――――――――――――――――――――――――
/// <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;
res += "%"; res += Convert.ToString(sh,16); res += Convert.ToString(sl,16); } return res; }
注:该方法的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。 上一篇:HTML:关闭(离开)浏览器窗口前的 系统提示 下一篇:target=_blank不符合标准? 更多相关文章
|
推荐文章
精彩文章
· HTML技巧集锦
|