escape函式處理帶加號字串問題

2021-06-28 21:39:56 字數 910 閱讀 4126

在使用jqery做ajax操作的時候有中文老是亂碼!必須的使用escape函式編碼才正常,encodeuricomponent等函式都不可以,這是因為url中字元被轉義,比如空格被編碼成加號,於是加號成了空格。我們可以手工將加號編碼成 %2b,eg:

escape(str).replace(//+/g, '%2b');這樣就可以了

(url轉義字元原理

如果表單的action為list.jsf?act=go&state=5

則提交時通過request.getparameter可以分別取得act和state的值。

如果你的本意是act='go&state=5'這個字串,那麼為了在服務端拿到act的準確值,你必須對&進行轉義

[預備知識]

對與通過get方式提交的url,瀏覽器在提交前首先根據http協議把一乙個的引數及其值解析配對。而url的引數間是通過&分割的,這就是瀏覽器進行引數配置的分割依據。如果你的引數值中含有&等url特殊字元,那麼你在伺服器端就會拿到意想不到的值。所以必須對url的特殊字元進行轉義。

編碼的格式為:%加字元的ascii碼,即乙個百分號%,後面跟對應字元的ascii(16進製制)碼值。例如 空格的編碼值是"%20"。

下表中列出了一些url特殊符號及編碼

十六進製制值

1. + url 中+號表示空格 %2b

2. 空格 url中的空格可以用+號或者編碼 %20

3. / 分隔目錄和子目錄 %2f

4. ? 分隔實際的 url 和引數 %3f

5. % 指定特殊字元 %25

6. # 表示書籤 %23

7. & url 中指定的引數間的分隔符 %26

8. = url 中指定引數的值 %3d

所以上述的action你應該寫成list.jsf?act=go%26state=5)

URL引數的加號等特殊字元的處理

之前沒有遇見過,這樣的問題,所以都沒有考慮過。有乙個引數裡面有乙個 號,接收的時候 不見了,如address 上海黃埔 上海浦東 接收的時候變成 上海黃埔上海浦東 了。string url aspx?xx xx name contextwai.server.urlencode name haha c...

MSSQL處理字元函式

字串處理 一.大小寫處理 lower 將字串全部轉為小寫 upper 將字串全部轉為大寫。二.字元轉換 str 把數值型資料轉換為字元型資料。str length length 指定返回的字串的長度,decimal 指定返回的小數字數。如果沒有指定長度,預設的length 值為10,decimal ...

php 字元處理函式

addslashes 字串加入斜線。bin2hex 二進位轉成十六進製。chop 去除連續空白。chr 返回序數值的字元。chunk split 將字串分成小段。convert cyr string 轉換古斯拉夫字串成其它字串。crypt 將字串用 des 編碼加密。echo 輸出字串。explod...