一 URL編碼問題

2021-10-06 06:43:58 字數 2150 閱讀 3542

url的路徑含有中文,必須要進行統一的uri編碼。否則後台獲取亂碼
var url=

"http://localhost:3306/day11?username='王帥'"

url=

encodeuri

(url)

;

切記:req.

getparameter

("username"

) 預設以iso-

8859

-1編碼

如果提交方式為post:

//設定的只是請求資料中實體內容的編碼

req.

setcharacterencoding

("utf-8");

//獲取

string parameter = req.

getparameter

("username");

如果提交方式為get:

//獲取

string parameter = req.

getparameter

("username");

parameter = new string

(parameter.

getbytes

("iso-8859-1"),

"utf-8"

);

3.1 前端編碼
"gbk"

>

這裡指定的是前端傳輸資料給後台時,將資料編碼時所用的碼表。

後台解析資料時,也必須使用這個碼表進行解碼。否則,會出現亂碼

eg: 前端:

"gbk"

>

後台: req.

setcharacterencoding

("gbk");

//指定解析實體內容的編碼表。

eg: 前端:

"utf-8"

>

後台: req.

setcharacterencoding

("utf-8");

//指定解析實體內容的編碼表。

<

!doctype html>

"gbk"

>

insert title here<

/title>

<

/head>

"./hello" method=

"post"

>

"text" name=

"postmsg"

>

"submit" value=

"提交"

>

<

/form>

<

/body>

<

/html>

3.2 後端解碼
後端獲取資料時,由於獲取的是io流資料,即資料是以二進位制的形式存在,所以要解碼。

後端解碼時要根據前端指定編碼的碼表來解碼。

前端以post的方式提交,後端指定編碼表,然後獲取資料即可。

//指定解析post資料的編碼表

req.

setcharacterencoding

("指定碼表");

//獲取資料

string msg= req.

getparameter

("msg");

前端以get方式提交,後端獲取資料,然後再手動編碼即可。

//獲取資料

string msg= req.

getparameter

("msg");

//手動解碼

msg = new string

(msg.

getbytes

("iso-8859-1"

),「」)

;

指定後台響應資料編碼用的碼表:

//在響應的響應頭上執行編碼的碼表。前端獲取資料時,就直接解碼了。

response.

setcharacterencoding

("text/html;charset=utf-8"

);

url編碼問題

url編碼規則1.字元 a z a z 0 9 和 都不會被編碼 2.將空格轉換為加號 3.將非文字內容轉換成 xy 的形式,xy是兩位16進製制的數值 可以直接使用urlencoder.encode 和urldecoder.decode 進行編碼和解碼 string s a.b c d e f g...

url中文編碼問題

1.url該編碼的編碼一定要編碼,否則如果存在空格就會報400錯誤,那麼什麼樣的url是該編碼的呢?url中有空格等特殊字元的 url中有中文的2.編碼要只對引數編碼,不要對整個url進行編碼,因為如果對整個url編碼的話會把url中的 等字元也進行編碼了 3.使用urlencoder.encode...

python的url編碼問題

urlencode的引數必須是dictionary d p rinturllib.urlencode m par2 b par1 a 函式urlencode不會改變傳入引數的原始編碼,也就是說需要在呼叫之前將post或get引數的編碼調整好。python編碼轉換可以參考 問題 現在模擬請求googl...