[C#] ASP.net 出現 InvalidOperationException: Invalid non-ASCII or control character in header: 0x5132 的錯誤

2023-06-27


在 Web 開發的演進中,我們經歷了從 WebForm 時代到現在的 .Net 6 時代,而在這過程中,一些原本看似簡單的操作,卻可能因為技術的進步而產生一些意想不到的變化。

以前在 WebForm 時代,我們經常使用 ResponseRedirect 這樣的方式進行頁面跳轉,而且往往並不會遇到太多問題,

例如直接使用 ResponseRedirect("/sample.aspx?meg=儲存成功") 就能夠順利地將用戶導向指定的頁面,同時傳遞一些必要的參數。


然而,最近在使用 .Net 6 開發時,卻意外地遇到了一個 InvalidOperationException: Invalid non-ASCII or control character in header: 0x5132 的錯誤。


這種錯誤可能讓開發者感到困惑,特別是當這似乎是一個在先前版本中從未發生過的問題時。

這樣的情況下,我們需要尋找解決方案,以確保我們的應用程序能夠正常運作。在這種情況下,解決方案相對簡單,

只需要在進行頁面跳轉時使用 System.Net.WebUtility.UrlEncode 方法對參數進行編碼,就可以有效地避免這個錯誤。

這裡提供一個範例代碼:



當麻許的超技八 2014 | Donma Hsu Design.