2009-08-03 47 views
4

我使用Server.HTMLEncode編碼我的HTML。ASP.NET Server.HtmlEncode限制

我注意到它不到風度逃避單引號,如果你在你的HTML中使用單引號,例如這是一個限制 <input type='text' .... />

(我檢查過這是有效的XHTML)。

是否有任何其他限制或要注意的事情有關Server.HTMLEncode,特別是無效的XHTML,此方法不到風度應對任何字符?

回答

10

MSDN says Server.HTMLEncode僅執行以下操作:

  • 的低於字符(<)轉化爲& LT。
  • 的大於號字符(>)被轉換爲& GT。
  • 與符號字符(&)轉化爲&安培;
  • 的雙引號(「)被轉換爲& QUOT;
  • 任何ASCII碼字符,其代碼是大於或等於0x80的被轉換爲&#<數>,其中編號是ASCII字符值。
0

我測試過的HTMLEncode對這裏listsed http://www.ascii.cl/htmlcodes.htm

看來它的所有字符代碼轉義字符最多,和那些它不到風度逃避不打破XHTML遵守

0

HTML編碼應確保字符串中所有不符合HTML的字符都轉換爲其等效實體。正如您發現的那樣,單引號等在(X)HTML中完全有效,並且不需要編碼。如果你需要這個,你可以使用UrlEncode/UrlDecode,或者使用Replace來滾動你自己的函數。

0

我來到這裏尋找相同的答案。在我的情況下,解決辦法是在你周圍的HTML實際...用雙引號..

0

要包括單引號編碼,我使用(在VB.Net):

Server.HTMLEncode("Here's a string with a single quote").Replace("'", "&#39;")