URL在傳址時,我們是用Server.UrlEncode去加密
Server.UrlEncode 官方說明
https://msdn.microsoft.com/en-us/library/ms525738(v=vs.90).aspx
Server.UrlEncode v.s HttpUtility.UrlEncode
https://dotblogs.com.tw/mis2000lab/2008/06/11/4268
如果是用Server.UrlEncode,針對URL request 回來會自動decode
但發現使用Server.UrlEncode會有將URL空白轉成+號的情形
這在IIS7之後會有網頁錯誤的問題
請參考
http://blog.darkthread.net/post-2015-07-02-iis7-disallow-plus-in-url-path.aspx
順便筆記一下編碼相關的基本常識
ASCII =>只限英數字
BIG5 =>台灣自己開發出來的中文編碼系統,會有難字及亂碼的問題
UTF8 = > ㄍbase 在 Unicode 上,支援中英文數字,相容ASCII
於是跟同事討論決定轉成ASCII加密轉換成字串( Convert.ToBase64String)
再已Server.UrlEncode傳送
等到解回來時
URL request 會自動將Server.UrlEncode解密
再使用Encoding.Default(使用系統 ANSI 字碼頁的編碼方式) 去做解碼
在此紀錄一下
沒有留言:
張貼留言