簡體   English   中英

是否可以對可能干凈編碼的內容進行HTML編碼?

[英]Is it possible to Html Encode content that may or may not alreayd be encoded cleanly?

我正在將ASP.Net 4.0與MVC 2一起使用。我正在接收可能已經或可能尚未經過Html編碼的用戶內容。 我已閱讀http://weblogs.asp.net/scottgu/archive/2010/04/06/new-lt-gt-syntax-for-html-encoding-output-in-asp-net-4-and- asp-net-mvc-2.aspx很有意思,但我需要的是一種確保內容編碼而無需雙重編碼的方法。 我無法控制輸入過程。

例如

用戶輸入:

&amp; &lt; < > &gt;  

如果編碼則輸出:

&amp;amp; &amp;lt; &lt; &gt; &amp;gt;  

無法正確顯示

如果未編碼,則輸出:

&amp; &lt; < > &gt;

這將無法正確驗證

您可以先通過解碼用戶輸入,然后重新編碼結果。 這樣,如果輸入的某些值已被編碼,則它們將被解碼,然后您就可以對所有內容進行編碼。

&amp; &lt; < > &gt;  

->解碼輸入,您將得到:

& < < > >

->重新編碼所有內容,您將獲得:

&amp; &lt; &lt; &gt; &gt

如果是我,我將只替換<>字符,其他所有內容保持不變。

我認為您不會找到一種可以同時對已編碼的內容自動運行的解決方案,而不是對編碼的內容都不會自動運行的解決方案-我唯一可以看到可以可靠地執行此操作的方法是,指定內容是否已編碼。 否則,在某些情況下您會遇到問題,例如

Some plain text mentioning &gt; being the syntax for >

<p>Some HTML mentioning that &amp;amp; is the syntax for &gt;</p>

您可以嘗試檢測是否存在編碼內容或HTML內容,但是以上示例表明,這並不總是可以肯定的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM