ASP.NET - 什么字符,则Server.HtmlEncode编码为命名字符条目(ASP.NE

2019-09-18 00:15发布

什么角色呢Server.HtmlEncode编码为命名字符实体?

到目前为止,我只找到< > & and " < > & and " 当然必须有比这个更?

Answer 1:

这是代码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);
                    }
                }
            }
        }
    }
}


Answer 2:

.NET 4和4.5编码单引号也,这并不似乎是在回答



文章来源: ASP.NET - What Characters does Server.HtmlEncode Encode into Named Character Entities