2009-08-03 5 views
4

私はHTMLをエンコードするのにServer.HTMLEncodeを使用しています。ASP.NET Server.HtmlEncodeの制限

私はそれが単一引用符をエスケープしないことに注意します。 <input type='text' .... />

(これは有効なXHTMLです)。

Server.HTMLEncode、特にこのメソッドが扱うことのできない有効なXHTMLでない文字については、他にも制限や注意点がありますか?

答えて

10

MSDN says Server.HTMLEncodeのみ以下ん

  • 小なり記号(<)は& LTに変換され、。
  • 大なり文字(>)は& gt;に変換されます。
  • アンパサンド文字(&)は、& amp;に変換されます。
  • 二重引用符( ")は& QUOTに変換される;そのコード
  • 任意のASCIIコード文字が数字がASCII文字である&#<番号>、に変換されるよりも、大きいかは0x80に等しいです。値。
0

私はそれはほとんどの文字をエスケープ表示され、それが脱出をdosn'tものがXHTML準拠

を壊してはいけない、ここで http://www.ascii.cl/htmlcodes.htm

をlistsedすべての文字コードに対してHTmlENcodeをテストしてみました

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;") 
関連する問題