1. 程式人生 > >URL 傳參編碼&解碼

URL 傳參編碼&解碼

以前做好的一個頁面,突然被告知亂碼了,當時嚇一跳,好在沒有影響線上資料,於是找出原因,以前開發專案幾乎全是在火狐上測試使用的,然後今天早上找了一下,發現火狐不報錯,其他瀏覽器報錯,於是用IE試了一下,果真就亂碼了再見

條件如下:

url引數中有中文有英文,有數字,由於懶,就不對URL 進行編碼了 ,其他的不會受到影響,於是就只把中文的引數進行了編碼,傳到後臺使用C#進行解碼。

先科普一下它的家人們:

JavaScript中編碼方法有:escape、encodeURI、encodeURIComponent

C#中編碼主要方法有:HttpUtility.UrlEncode、Server.UrlEncode、Uri.EscapeUriString、Uri.EscapeDataString

escape:

對ASCII符號編碼

encodeURI

對於網址編碼,不包含引數

encodeURIComponent

對引數進行編碼

------------------------------------------------------------------------------------------------------------------------------------------------------------------

以下是使用方法:

var strUrl = "TradeDate?country=" + encodeURIComponent(country) + "&countryEn=" + countryEn + "&startTime=" + sDate + "&endTime=" + eDate + "&pi=" + viewmodel.pageIndex() + "&pz=" + viewmodel.pageSize();

這裡country 國家是中文引數 ,於是在傳值的時候先進行編碼,到了後臺,C#部分程式碼是這樣獲取的:
string newCountry = HttpUtility.UrlDecode(country, Encoding.GetEncoding(936));

引用的是using System.Text;
內碼表 Name 顯示名稱
936 gb2312 簡體中文 (GB2312)
65001 utf-8 Unicode (UTF-8)

因為我們傳過來的是簡體中文,所以指定解碼方案的Encoding 用936。

注*:

如果在 HTTP 流中傳遞如空格和標點字元,它們可能會錯誤地解釋在接收端。
URL 編碼轉換為字元實體等效項; 不允許在 URL 中的字元URL 解碼反轉的編碼。例如,在嵌入到要在 URL 中,字元傳輸的文字塊中 < 和 > 編碼為 %3 c 和 %3e。

若要對 Web 應用程式之外的值進行編碼或解碼,請使用WebUtility類。

以上。


相關推薦

URL 編碼&解碼

以前做好的一個頁面,突然被告知亂碼了,當時嚇一跳,好在沒有影響線上資料,於是找出原因,以前開發專案幾乎全是在火狐上測試使用的,然後今天早上找了一下,發現火狐不報錯,其他瀏覽器報錯,於是用IE試了一下,果真就亂碼了 條件如下: url引數中有中文有英文,有數字,由於懶,就不

vue前後端aes url解密再解base64編碼

需求:我們公司做機票訂購服務,有自己的平臺的訂單,也有第三方網站向我們網站匯入的使用者訂單,第三方匯入的是通過url傳參的方式匯入。url會攜帶使用者的相關資訊。 url裡面的引數是經過aes加密和base64編碼的,因此要取出裡面的資料是要解密和解碼的。 方案: 第一

html--對URL數進行解析

-- earch com turn indexof repl span 需要 lac 跳轉頁面需要傳參數到另外一個html頁面,跳轉鏈接可寫一個js的function function doView(articleId) { window.location.hre

通過URL數,然後第二個頁面需要獲取

banner chan rom base its [0 val success escape /** * 方法說明:通過url參數鍵值名稱獲取參數的值 * @method getQueryString * @param name

js的form表單提交url數(包含+等特殊字符)的解決方法

字符 www. mit function form表單提交 sub win tno wiki 方法一:(偽裝form表單提交) linkredwin = function(A,B,C,D,E,F,G){ var formredwin = document.cr

thinkphp5 url

man AS blank lan tps 手冊 HR php5 href url(‘index/blog/read‘,[‘id‘=>5,‘name‘=>‘thinkphp‘]); 手冊https://www.kancloud.cn/manual/thinkp

js 獲取url

ref col js代碼 clas The mat indexof www. In js代碼: <Script language="javascript"> function GetRequest() { var url = locati

Spring Swagger URL問題(轉)

官方文檔 require rac 必須 master 傳參 都沒有 github ecif 代碼例子: @ApiOperation(value="獲取用戶詳細信息", notes="根據url的id來獲取用戶詳細信息") @ApiImplicitParam

URL 中需要處理的特殊字符

tor 進行 sharp 字符 表示 light decode class 編程 例如實際請求URL如下: http://www.douwansha.com/mdeditor?data=[{"address":null,"name":"公司名稱=阿裏巴巴集團","id":

Vue中通過URL

本文采用的為使用query; 傳參: this.$router.push({ path: '/urlpass', query: { id: 'a' } }) 取值:

URL中特殊的字元處理

一、問題:        在做專案中,如果要傳遞的url中包含特殊字元,例如"+",但是這個+會被url會被編碼成空格。尤其是當傳遞的url是經過Base64加密或者RSA加密後的,存在特殊字元時,這裡的特殊字元一旦被url處理,就不是原先你加密的結果

js 獲取純web位址列中URL

         function GetQueryString(name)    {         var reg = new RegExp("(^|&)"+ name +"=

(四)flask框架使用教程系列——URL、反轉URL

一、URL傳引數 1. 引數的作用       可以在相同的URL ,但是指定不同的引數,後來載入不同的資料。 2. 在flask中如何使用引數 引數需要放在兩個尖括號中; 檢視函式中需要放和url中的

Vue之url

在router.js定義需要傳遞的引數 import Vue from 'vue' import Router from 'vue-router' import Home from './views/Home.vue' import Error from './view

原生Ajax使用筆記---get和post方法,url

AJAX是Asynchronous Javascript And XML(非同步JavaScript和XML)的縮寫,用於建立快速動態網頁的技術。AJAX的核心物件是XMLHttpRequest ,在每個瀏覽器中都有。 原生Ajax的使用步驟: 建立一個核心物件XMLHttpReque

IE、FireFox、Chrome瀏覽器中關於URL中文亂碼,解決相容性問題!

前臺用url傳值中文,後臺用request.getParameter接收引數。在Firefox,Chrome等瀏覽器中沒有問題。但用IE瀏覽器就又會出現引數中文亂碼現象。         IE、 Firefox、Chrome瀏覽器對URL的處理各不相同,瀏覽器在傳輸URl時

JS獲取當前頁面url

JS獲取當前頁面url傳參 function geturl(data) { //獲取當前頁面路徑傳參 // var url = document.location.toString(); //獲取當前頁面路徑,我這裡在本地寫的一個頁面路徑進行參考 var url

在IE瀏覽器中url長度問題

傳遞 http span 考過 接收參數 系統 san sin 問題: 1.在這之前我一直以為,應該說是並沒有去思考過,url地址傳參的長度限制問題:知道在項目材料價格系統中遇到之後,才對這個問題進行了具體的探索。IE中最大的長度限制為2084個,用於get傳遞數據的長度是

4.4、Django - URLURL給檢視(二)

上篇介紹了通過URL傳參給檢視,下面繼續說一下URL傳參給檢視的另外一種方式(查詢字串的形式),即GET 請求方法 。 在douAPI專案APP為douBook的views.py中: from django.shortcuts import render # Create you

4.4、Django - URLURL給檢視(一)

1、為什麼要在URL中傳遞引數? 引數,意味著在url中不固定,如果是寫死固定的話,就不需要了 。 下面兩幅圖,顯示的是前面部分相同的豆瓣的文章連結,只有後面的id不一樣 。 在APP為douBook下的views.py中: from django.http import