首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> .NET 網頁程式設計 >> ASP.NET 基礎 >> ASP.NET 基礎

C# HTML 字元編碼與解碼工具方法

     編輯:ASP.NET 基礎

在處理使用者輸入或資料庫欄位顯示於網頁時,需將特殊字元轉換為 HTML 實體編碼以防止 XSS 與排版錯誤。本文提供一組簡單易用的 HtmlEncode/HtmlDecode 靜態方法。

編碼方法:HtmlEncode

/// <summary>
/// 將字串中的特殊字元轉為 HTML 實體編碼
/// </summary>
public static string HtmlEncode(string input)
{
    if (string.IsNullOrEmpty(input)) return input;

    return input
        .Replace("&", "&")      // 必須最先處理 &
        .Replace(">", ">")
        .Replace("<", "<")
        .Replace(" ", " ")
        .Replace("\"", """)
        .Replace("'", "'")
        .Replace("\n", "
"); }

解碼方法:HtmlDecode

/// <summary>
/// 將 HTML 實體編碼還原為原始字元
/// </summary>
public static string HtmlDecode(string input)
{
    if (string.IsNullOrEmpty(input)) return input;

    return input
        .Replace(">", ">")
        .Replace("<", "<")
        .Replace(" ", " ")
        .Replace(""", "\"")
        .Replace("'", "'")
        .Replace("
", "\n") .Replace("&", "&"); // 最後處理 & }

使用範例

string raw = @"";
string encoded = HtmlHelper.HtmlEncode(raw);
// 輸出:<script>alert('XSS')</script>

string decoded = HtmlHelper.HtmlDecode(encoded);
// 還原原始字串

注意事項

  • 順序很重要:編碼時必須先處理 &,解碼時最後處理,否則會重複轉換。
  • 此為簡易實作,僅涵蓋常見字元。完整專案建議使用 System.Web.HttpUtility.HtmlEncode/Decode 或 System.Net.WebUtility.HtmlEncode/Decode (.NET Core/5+),支援完整實體表與效能優化。
  • 若需保留換行但不轉 <br/>,可移除對 \n 的替換,改用 CSS white-space: pre-wrap。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved