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

.NET 呼叫 JScript 腳本與 JavaScript URL 編解碼完整指南

     編輯:ASP.NET 基礎

在 .NET 開發中,有時需要在 C# 程式碼裡直接使用 JavaScript 的編碼函式(如 escape、unescape、encodeURI 等),或是處理 URL 參數的加密解密。本文將詳細說明如何在 .NET 中引用 JScript 執行這些操作,並整理 JavaScript 常見編解碼函式的差異與適用場景。

一、在 C# 中使用 JScript 的編碼函式

若要在 C# 專案中呼叫 escape、unescape 等 JScript 函式,需先加入 Microsoft.JScript 組件參考。隨後即可透過 Microsoft.JScript.GlobalObject 存取這些全域函式:

// 加入參考:Microsoft.JScript
using Microsoft.JScript;

// 範例:編碼中文字串
string strEscaped = GlobalObject.escape("測試打");
// 結果:%u6E2C%u8A66%u6253

// 同理可用 unescape、encodeURI、decodeURI 等
string strUnescaped = GlobalObject.unescape(strEscaped);
string strEncoded = GlobalObject.encodeURI("測試打");

注意: JScript.NET 將所有全域函式集中在 GlobalObject 類別下,使用時務必加上此前綴。

二、ASP.NET 內建的 URL 解碼方法

針對一般 URL 參數解碼,ASP.NET 提供了更直接的方法:

// 使用 HttpServerUtility.UrlDecode
string decoded = Server.UrlDecode(encodedString);

此方法適用於表單提交、QueryString 等常見情境,無需額外引用 JScript 組件。

三、JavaScript URL 編解碼函式詳細比較

JavaScript 提供三組編解碼函式,編碼範圍與用途各異:

函式編碼範圍典型用途
escape / unescapeASCII 字母、數字、@ * _ + - . / 以外的所有字元(含 Unicode)早期版本常用,現已不建議在新專案使用
encodeURI / decodeURI除保留字元(; , / ? : @ & = + $ #)與未轉義字元外的所有字元編碼完整 URL(含協定、域名、路徑)
encodeURIComponent / decodeURIComponent除字母、數字、( ) . ! ~ * ' - _ 外的所有字元編碼單一 URL 參數值,防止特殊字元(如 #、&)截斷參數

四、實務選擇指南

  1. 傳遞參數時:務必使用 encodeURIComponent,確保參數值中的特殊字元(#、&、= 等)不會干擾 URL 結構。
  2. 整體 URL 跳轉:使用 encodeURI,保留 URL 結構所需的保留字元。
  3. 內部資料處理:若僅在 JavaScript 內部儲存/傳遞資料,可用 escape(但建議改用 encodeURIComponent)。
  4. Unicode 補充字元:escape 對 U+0100 以上字元輸出 %uXXXX 格式;其他兩組則統一輸出 UTF-8 多位元組序列(%XX%XX...)。

五、總結

.NET 開發者可透過 Microsoft.JScript.GlobalObject 直接複用 JavaScript 編碼邏輯,亦可善用 Server.UrlDecode 等內建方法。實務上,掌握 encodeURIComponent(參數)、encodeURI(完整 URL)的分工,能有效避免 URL 截斷、參數污染等常見錯誤。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved