1. 程式人生 > >C# HttpUtility.UrlEncode 與 JAVA URLEncoder.encode 區別

C# HttpUtility.UrlEncode 與 JAVA URLEncoder.encode 區別

C# HttpUtility.UrlEncode(param_body, Encoding.) 

是"%7b%22order_no%22%3a%228781442235161190%22%2c%22status%22%3a%222000%22%7d461de5b941e9622585cc8c184f65aef6"

而JAVA URLEncoder.encode(param_body, "utf-8") 

%7B%22order_no%22%3A%228781442235161190%22%2C%22status%22%3A%222000%22%7D461de5b941e9622585cc8c184f65aef6

status並沒有變,只是Encoder部分產生的程式碼 C#用的小寫,而JAVA用的是大寫

只要在C#中執行如下函式替代原來的UrlEncode(param_body, Encoding.) 即可。

        private static string UrlEncode(string temp, Encoding encoding)
        {
            StringBuilder stringBuilder = new StringBuilder();
            for (int i = 0; i < temp.Length; i++)
            {
                string t = temp[i].ToString();
                string k = HttpUtility.UrlEncode(t, encoding);
                if (t == k)
                {
                    stringBuilder.Append(t);
                }
                else
                {
                    stringBuilder.Append(k.ToUpper());
                }
            }
            return stringBuilder.ToString();
        }

相關推薦

C# HttpUtility.UrlEncode JAVA URLEncoder.encode 區別

C# HttpUtility.UrlEncode(param_body, Encoding.)  是"%7b%22order_no%22%3a%228781442235161190%22%2c%22status%22%3a%222000%22%7d461de5b941e96

php urlencode vs java URLEncoder.encode

  結論:urlencode 先比URLEncoder.encode多編碼 “ * ” 符號,其他都保持一致 php urlencode    phpversion()>=5.3 will compliant with RFC 3986, while phpversi

[引用區別] c++中引用java中引用區別

綜述:     在Java中,類例項宣告和構造是分開。"T a;"是宣告,而"a=new T();"才是構造。引用宣告和C++相同。但是Java的機制與C++不同,Java中的引用也叫控制代碼,或者說控制代碼才是其真實名稱。類宣告的都是一個控制代碼,呼叫建構函式才會使得控制

C++基礎,java區別

其實只要知道一點,瞭解java看看普通的c++還是很容易的。萬變不離其宗。 名稱空間: namespace 名字 呼叫空間中的成員:using 名字::成員名 使用名空間std必須去掉副檔名 輸入輸出 cout<<輸出內容1<<輸出內容2

C#中override重寫new隱藏的區別,以及C#Java的Override區別

在C#中:override重寫,是指對父類中的虛方法(標記為override)或抽象方法(標記為abstract)進行重寫,實現新的功能,它必須與父類方法的簽名完全一致,而且與父類方法的可訪問性也必須一致new方法隱藏,是指在子類中重新定義一個簽名與父類的方法相同的方法,這個

Java-URLEncoder.encode 什麽時候才是必須的

encode 幫助 nbsp out code coder 什麽 第三方 特殊符號 當你希望把一段 URL 當成另一個 URL 的參數時,比如:當用戶點擊交易的按鈕時你發現未登錄就跳轉到 login 頁面同時帶上一個參數記錄在登錄之前用戶是希望訪問的那個交易頁面,這樣在登錄

C#HttpUtility.UrlEncode 大寫問題

stat col IT AC upper httputil color PE sele 工作上和另一個公司對接,調對方的api需要用到md5加密,加密前要使用HttpUtility.UrlEncode,對方接口一直返回驗證錯誤,定位了問題發現是中文編碼使用HttpUtili

C#中boolBoolean有什麼區別

    首先結論:bool和Boolean(System.Boolean)是完全一樣的  MSDN中解釋bool與Boolean的關係是:bool關鍵字是System.Boolean的別名。實際使用無任何差別。它們的成員也是一樣的。    

C++---動態庫靜態庫的區別

首先介紹一下靜態庫(靜態連結庫)、動態庫(動態連結庫)的概念,首先兩者都是程式碼共享的方式。 靜態庫:在連結步驟中,聯結器將從庫檔案取得所需的程式碼,複製到生成的可執行檔案中,這種庫稱為靜態庫,其特點是可執行檔案中包含了庫程式碼的一份完整拷貝;缺點就是被多次使用就會有多份冗餘拷貝。即靜態庫中的指

C語言gets()scanf()函式的區別

scanf( )函式和gets( )函式都可用於輸入字串,但在功能上有區別。若想從鍵盤上輸入字串"hi hello",則應該使用__gets__函式。 gets可以接收空格;而scanf遇到空格、回車和Tab鍵都會認為輸入結束,所有它不能接收空格。 char string[15]

C++的類結構體的區別

C++中的struct對C中的struct進行了擴充,它已經不再只是一個包含不同資料型別的資料結構了,它已經獲取了太多的功能。struct能包含成員函式嗎? 能! struct能繼承嗎? 能!! struct能實現多型嗎? 能!!!  既然這些它都能實現,那它和clas

C】MinGWMSVC編譯的區別

  本人使用的是QT5.6,當時我們選擇下載的是第一個VS2015版本,也就是通過MSVC方式編譯。 我們來對比一下這兩個編譯器的區別: MSVC是指微軟的VC編譯器 MinGW是指是Minimalist GNU on Windows的縮寫。它是一個可自由使用和

C# 靜態變數普通變數的區別

靜態變數與普通變數的區別 全域性變數(外部變數)的說明之前再冠以static 就構成了靜態的全域性變數。全域性變數本身就是靜態儲存方式, 靜態全域性變數當然也是靜態儲存方式。這兩者在儲存方式上並無不同。這兩者的區別雖在於非靜態全域性變數的作用域是整個源程式, 當一個源程式

【Objective-C】類結構體的區別

只能在類裡面寫方法,不能在結構體裡面寫方法類——物件,結構體——值類——引用型別 位於棧上的指標(引用)位於堆上的實體物件結構體——值型別 例項直接位於棧中拷貝行為: classname *a = b

c#基礎 類結構體的區別 繼承

類是引用型別的,變數中儲存的數物件的地址,s1和s2中儲存但是同一個物件的地址 結構體是值型別的,複製時,是將s3中的成員拷貝給s4的成員,s3,s4是兩個結構體變數。 結構體中不帶參的建構函式會一直存在,不會因為自己建立建構函式而消失 因為不帶引數的建構函式一直存在,所以

C++內部類JAVA內部類的不同

C++中好像不區分內部類與巢狀類兩個名詞。 內部類與巢狀類都是指在類中定義類。 區域性類是指在函式中定義類。 (c++不能在函式中定義函式。c++在類中定義的函式也就是成員函式。) (c++內部類與java內部類最大的區別就是: c++的內部類物件沒有外部類物件的指標,不能

C、python 、java記憶體管理區別

3、全域性區(靜態區)(static)—,全域性變數和靜態變數的儲存是放在一塊的,初始化的全域性變數和靜態變數在一塊區域, 未初始化的全域性變數和未初始化的靜態變數在相鄰的另一塊區域。 - 程式結束後有系統釋放 

C++函式模板類模板的區別

類模板: C++ 除了支援函式模板,還支援類模板(Class Template)。函式模板中定義的型別引數可以用在函式宣告和函式定義中,類模板中定義的型別引數可以用在類宣告和類實現中。類模板的目的同樣是將資料的型別引數化。 宣告類模板的語法為: template<t

C++】char* char []定義的區別

char* s1=”abc”;s1是一個指標,s1所指向的地址的內容是不可改變的,但是s1可以指向其他地址。s1是指向字串常量的,它儲存在裡不可被修改。 如下: char* s1="abcd"; s1[2]='z'; //錯誤:編譯時能通過執行的時

檔案操作——C庫呼叫Linux系統呼叫區別

     Linux下對檔案操作有兩種方式:系統呼叫(system call)和庫函式呼叫(Library functions)。系統呼叫實際上就是指最底層的一個呼叫,在linux程式設計裡面就是底層呼叫的意思,面向的是硬體。而庫函式呼叫則面向的是應用開發的,相當於應用程