2012-06-11 2 views

ответ

5

Это код HtmlEncode, так что вы можете увидеть, как все сделано.

public static unsafe void HtmlEncode(string value, TextWriter output) 
{ 
    if (value != null) 
    { 
     if (output == null) 
     { 
      throw new ArgumentNullException("output"); 
     } 
     int num = IndexOfHtmlEncodingChars(value, 0); 
     if (num == -1) 
     { 
      output.Write(value); 
     } 
     else 
     { 
      int num2 = value.Length - num; 
      fixed (char* str = ((char*) value)) 
      { 
       char* chPtr = str; 
       char* chPtr2 = chPtr; 
       while (num-- > 0) 
       { 
        chPtr2++; 
        output.Write(chPtr2[0]); 
       } 
       while (num2-- > 0) 
       { 
        chPtr2++; 
        char ch = chPtr2[0]; 
        if (ch <= '>') 
        { 
         switch (ch) 
         { 
          case '&': 
          { 
           output.Write("&amp;"); 
           continue; 
          } 
          case '\'': 
          { 
           output.Write("&#39;"); 
           continue; 
          } 
          case '"': 
          { 
           output.Write("&quot;"); 
           continue; 
          } 
          case '<': 
          { 
           output.Write("&lt;"); 
           continue; 
          } 
          case '>': 
          { 
           output.Write("&gt;"); 
           continue; 
          } 
         } 
         output.Write(ch); 
         continue; 
        } 
        if ((ch >= '\x00a0') && (ch < 'Ā')) 
        { 
         output.Write("&#"); 
         output.Write(ch.ToString(NumberFormatInfo.InvariantInfo)); 
         output.Write(';'); 
        } 
        else 
        { 
         output.Write(ch); 
        } 
       } 
      } 
     } 
    } 
} 
0

.NET 4 и 4,5 закодировать одиночные кавычки также, что, кажется, не быть в ответе

Смежные вопросы