web-dev-qa-db-ja.com

文字列をHTMLセーフ文字列に変換する方法

動的に生成されたHTMLを作成しています

_bldr.AppendLine("<a>");
string userText = user.Company;
bldr.AppendLine(userText);
bldr.AppendLine("</a>");
_

会社名が何であれ、その通りに表示されるようにするにはどうすればよいのでしょうか?.

たとえば、「<script>alert("Do Bad!")</script>」という名前を使用しようとした場合、ページ上にプレーンテキストで表示されます。

しかし、「A&C」から「A\u0026 C」への翻訳も避けたいと思います。

_HttpUtility.JavaScriptStringEncode(user.Company);
_
13
TruthOf42

Javascriptに使用しているのと同じクラスHttpUtilityを使用できますが、htmlの場合はサンプルです。

_bldr.AppendFormat("<a>{0}</a>\n", HttpUtility.HtmlEncode(user.Company));
_

HttpUtility.HtmlDecode(string)を使用した逆の方法もあります。

17
Felipe Oriani

System.Webに依存しない代替手段:

System.Net.WebUtility.HtmlEncode()
10
MarkO
using System.Web;

var encoded = HttpUtility.HtmlEncode(unencoded);
5
Manfre

HttpUtility.HtmlEncode メソッド:

var htmlString = HttpUtility.HtmlEncode(user.Company);
2
ChrFin
1
Rik