转) javascript 中的escape 与C#互相转化
public static string Escape(string s)
??????? {
??????????? StringBuilder sb = new StringBuilder();
??????????? byte[] ba = System.Text.Encoding.Unicode.GetBytes(s);
??????????? for (int i = 0; i < ba.Length; i += 2)
??????????? {
??????????????? if (ba[i + 1] == 0)
??????????????? {
??????????????????? //數(shù)字,大小寫字母,以及"+-*/._"不變
??????????????????? if (
????????????????????????? (ba[i]>=48 && ba[i]<=57)
??????????????????????? ||(ba[i]>=64 && ba[i]<=90)
??????????????????????? ||(ba[i]>=97 && ba[i]<=122)
??????????????????????? ||(ba[i]==42 || ba[i]==43 || ba[i]==45 || ba[i]==46 || ba[i]==47 || ba[i]==95)
??????????????????????? )//保持不變
??????????????????? {
??????????????????????? sb.Append(Encoding.Unicode.GetString(ba, i, 2));
??????????????????? }
??????????????????? else//%xx形式
??????????????????? {
??????????????????????? sb.Append("%");
??????????????????????? sb.Append(ba[i].ToString("X2"));
??????????????????? }
??????????????? }
??????????????? else
??????????????? {
??????????????????? sb.Append("%u");
??????????????????? sb.Append(ba[i + 1].ToString("X2"));
??????????????????? sb.Append(ba[i].ToString("X2"));
??????????????? }
??????????? }
??????????? return sb.ToString();
??????? }
源文地址
javascript : escape 編碼與C# 的使用問題.
οnsubmit="form1.Text1.value?=?escape(form1.Text1.value);"?
?
.cs處理?
?
?string?a?=?HttpUtility.UrlDecode(Text1.Value);Response.Write(a);
?
?
//c#實(shí)現(xiàn)escape編碼:(用在ajax中)然后在aspx用unescape解碼,就不會出現(xiàn)亂碼問題?private?string?escape(string?s)
????{
????????StringBuilder?sb?=?new?StringBuilder();
????????byte[]?ba?=?System.Text.Encoding.Unicode.GetBytes(s);
????????for?(int?i?=?0;?i?<?ba.Length;?i?+=?2)
????????{???
????????????sb.Append("%u");
????????????sb.Append(ba[i?+?1].ToString("X2"));
????????????sb.Append(ba[i].ToString("X2"));
????????}
????????return?sb.ToString();
????}??
另外一些方法 ---------------------------- encodeURIComponent() /?decodeURIComponent() encodeURI()/decodeURI() 注意上面兩對javascript函數(shù)使用的編碼多是utf-8 應(yīng)次如果頁面使用編碼不是utf-8就需要做另外的處理 asp.net 發(fā)數(shù)據(jù)給 javascript 在頁面使用gb2312時 encodeString=HttpUtility.UrlEncode("中問是中問http://www.gyzs.net/", System.Text.Encoding.UTF8) 接收 <script>document.write(decodeURIComponent('<%=encodeString %>'));</script> javascritp 發(fā)數(shù)據(jù)給asp.net 頁面中有如下js腳本 <script>document.write("<a href='?t=" +encodeURI('中問是中問http://www.gyzs.net') +"' >點(diǎn)我</a>");</script> 如果web.config中配置使用gb2312那么就要做如下處理 ?Response.Write(HttpUtility.UrlDecode( Server.UrlEncode( Request["t"]),System.Text.Encoding.UTF8)); 如果web.config中使用的utf-8那么直接使用Request["t"]就可以 另外要注意表單提交使用post方法時,會對表單里的數(shù)據(jù)進(jìn)行 url編碼,注意不要重復(fù)
?
?
轉(zhuǎn)載于:https://www.cnblogs.com/wdfrog/archive/2008/09/05/1284801.html
總結(jié)
以上是生活随笔為你收集整理的转) javascript 中的escape 与C#互相转化的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 苏泊尔香弹煮时间多久(纯粹国产融为外资S
- 下一篇: 如何覆盖文件(如何修改源码&gt