符合RFC3986規範的編碼實現(C )

2022-01-11 15:07:41 字數 1271 閱讀 8210

在對接第三方平台的api時,有個簽名怎麼也校驗不對,後來發現是其中一步,生成url編碼有問題,對方使用的是php中rawurlencode的方法去生成的,而這個方法實現的是rfc3986規範。下面就做下記錄。

rfc3986文件對url的編譯碼問題做出了詳細的建議,指出了哪些字元需要被編碼才不會引起url語義的轉變,以及對為什麼這些字元需要編碼做出了相應的解釋。

1、在us-ascii字符集中沒有的可列印字元:url中只允許使用可列印字元。us-ascii碼中的10-7f位元組全都表示控制字元,這些字元都不能直接出現在url中。同時,對於80-ff位元組(iso-8859-1),由於已經超出了us-acii定義的位元組範圍,因此也不可以放在url中。

2、保留字元:url可以劃分成若干個元件,協議、主機、路徑等。有一些字元(

符合PSR的PHP程式設計規範例項

好的 書寫習慣可以讓人賞心悅目 namespace standard 頂部命名空間 空一行 use test testclass use引入類 類描述 類名必須大寫開頭駝峰.abstract class standardexample 必須換行 必須換行 this nametest new test...

總結的編碼規範

1 巨集定義格式 每個單詞用下劃線隔開。示例 define yyy 20 define yyy 20 各用兩個 tab隔開 2 一律不得出現常量,對於出現的常量 指數字和字串 用意義明顯的巨集定義 或列舉變數 代替。3 每個函式體不能過長,原則上不超過 200行 4 每個檔案不能過長,原則上不超過 ...

PHP的編碼規範

一 檔案格式 1.對於只含有 php 的檔案,我們將在檔案結尾處忽略掉 這是為了防止多餘的空格或者其它字元影響到 例如 foo foo 2.縮排應該能夠反映出 的邏輯結果,盡量使用四個空格,禁止使用製表符tab,因為這樣能夠保證有跨客戶端程式設計器軟體的靈活性。例如 if 1 x 3.變數賦值必須保...