2018年3月15日 星期四

ASP.Net 對於從 Url 傳入 BIG5 中文的處理方法

今天同事遇到一個問題,他跟某便利商店對接挑選門市,結果對方回呼時,傳入的中文是 BIG5 的,問我要怎麼處理。

由於 Request["param_name"] 是已經「壞掉」的資料,所以得從 Request.RowUrl 下手。

經過一番搜尋,得到的結果是下面這一段程式,用指定的 Encoding 來解碼 Request.RowUrl,再用 HttpUtility.ParseQueryString 拆解成 NameValueCollection

var request = HttpUtility.ParseQueryString(
    HttpUtility.UrlDecode(
        Request.RawUrl,
        Encoding.GetEncoding("big5")));

這樣 request["param_name"] 就得到正確編碼的內容了

特記於此,以備日後查看。