在網頁開發上, 處理 query stirng 是非常常見的情境, 要手動拆組 query string 也不難, 或是使用 .NET 本身就提供的相關功能讓這件事更輕鬆, 而兩種做法各有優缺點.
手動拆組
最直覺的方法就是手動拆組字串, 例如:
1 | static void HandleQueryString() |
手動拆組 query string 常常還要考慮拿到的 query string 前面有沒有多帶問號, 常用的話還要另外抽出來當共用方法, 比較麻煩但相對的很直覺, 且比較不會遇到編碼問題.
HttpUtility.ParseQueryString
如果不想手動拆組字串的話, 可以用 HttpUtility.ParseQueryString()
來處理 query string, 例如:
1 |
|
這樣做輕鬆很多, 但如果 query string 裡面有中文字或特殊符號的時候容易衍生出編碼相關的問題, 類似的編碼轉換問題在 HttpRequest.QueryString 的自動 UrlDecode 問題 這篇也有提到.
結論
兩種做法都各有優缺, 實務上怎麼做還是得視情況決定, 一般來說我還是會優先選擇 HttpUtility.ParseQueryString
, 如果有無法解決的編碼問題再考慮手動拆組.