当前位置: 首页  >  C#  >  模拟js escape方法

模拟js escape方法 TOP

 
  1. public static string Escape(string s)   
  2.         {   
  3.             StringBuilder sb = new StringBuilder();   
  4.             byte[] ba = System.Text.Encoding.Unicode.GetBytes(s);   
  5.             for (int i = 0; i < ba.Length; i += 2)   
  6.             {   
  7.                 if (ba[i + 1] == 0)   
  8.                 {   
  9.                     //数字,大小写字母,以及"+-*/._"不变   
  10.                     if (   
  11.                           (ba[i] >= 48 && ba[i] <= 57)   
  12.                         || (ba[i] >= 64 && ba[i] <= 90)   
  13.                         || (ba[i] >= 97 && ba[i] <= 122)   
  14.                         || (ba[i] == 42 || ba[i] == 43 || ba[i] == 45 || ba[i] == 46 || ba[i] == 47 || ba[i] == 95)   
  15.                         )//保持不变   
  16.                     {   
  17.                         sb.Append(Encoding.Unicode.GetString(ba, i, 2));   
  18.   
  19.                     }   
  20.                     else//%xx形式   
  21.                     {   
  22.                         sb.Append("%");   
  23.                         sb.Append(ba[i].ToString("X2"));   
  24.                     }   
  25.                 }   
  26.                 else  
  27.                 {   
  28.                     sb.Append("%u");   
  29.                     sb.Append(ba[i + 1].ToString("X2"));   
  30.                     sb.Append(ba[i].ToString("X2"));   
  31.                 }   
  32.             }   
  33.             return sb.ToString();   
  34.         }   

 

Views:730   Posted at:2013-11-27
收藏 推荐 打印 | 录入:Admin | 阅读:0