Microsoft.JScript.GlobalObject.unescape C# (CSharp) Method

unescape() private method

private unescape ( Object @string ) : String
@string Object
return String
      public static String unescape(Object @string){
        String str = Convert.ToString(@string);
        int n = str.Length;
        StringBuilder ustr = new StringBuilder(n);
        char c; int d1, d2, d3, d4;
        for (int k = -1; ++k < n; ustr.Append(c)){
          c = str[k];
          if (c == '%'){
            if (k+5 < n && str[k+1] == 'u'
            && (d1 = HexDigit(str[k+2])) != -1
            && (d2 = HexDigit(str[k+3])) != -1
            && (d3 = HexDigit(str[k+4])) != -1
            && (d4 = HexDigit(str[k+5])) != -1){
              c = (char)((d1<<12)+(d2<<8)+(d3<<4)+d4);
              k += 5;
            }else if (k+2 < n
            && (d1 = HexDigit(str[k+1])) != -1
            && (d2 = HexDigit(str[k+2])) != -1){
              c = (char)((d1<<4)+d2);
              k += 2;
            }
          }
        }
        return ustr.ToString();
      }