使用LINQPad測試UrlEncode
源由是我ASP.NET的程式要與對方ASP的程式做資料的傳遞
因對方傳給我的是BIG 5編碼 ,所以我也是傳BIG 5的編碼給對方,
但是對方卻說我傳的是亂碼
我就先UrlEncode後,再用BIG 5送過去,讓他自己去傷腦筋UrlDecode的問題
也因此才會有此次測試的產生
正文開始
首先要幫LINQPad加入System.web.dll的參考,不然無法使用UrlEncode:
在LINQPad工具列 --> Query --> Query Properties
選擇“Additional Reference”中的“Add”按钮加入要參考的DLL
( 參考文章:
五步快速使用LINQPad尝鲜StreamInsight
http://www.cnblogs.com/StreamInsight/archive/2011/07/05/5-Quick-Steps-for-Trying-Out-StreamInsight-with-LINQPad.html )
LINQPad中的原始碼
void Main()
{
string coded = "";
string test = " 中文 This is a value 中文 123 ";
coded = System.Web.HttpUtility.UrlEncode(test).Dump();
System.Web.HttpUtility.UrlDecode(coded).Dump();
coded = System.Uri.EscapeDataString(test).Dump();
System.Uri.UnescapeDataString(coded).Dump();
System.Web.HttpUtility.UrlDecode(coded).Dump();
coded = System.Uri.EscapeUriString(test).Dump();
System.Uri.UnescapeDataString(coded).Dump();
System.Web.HttpUtility.UrlDecode(coded).Dump();
}
//結果
%3corder%3e+%e4%b8%ad%e6%96%87+This+is+a+value+%e4%b8%ad%e6%96%87+123+%3c%2forder%3e
<order> 中文 This is a value 中文 123
中文 This is a value 中文 123 </order>
<order> 中文 This is a value 中文 123
中文 This is a value 中文 123 </order>
總結:
Encode後的文字是有些不一樣的,但都可用UrlDecode解開
不過ASP沒有內建UrlDecode,如果用與程式交換資料,是會有些問題的
後來雙方都改用UTF8編碼,才解決這件事
留言
張貼留言