本文目錄一覽:
- 1、php和javascript中文編碼不一樣
- 2、encodeURIComponent()加密地址後提交到php怎麼處理?
- 3、js的encodeuricomponent 的php解碼到底是用urldecode還是iconv()
- 4、瀏覽器的js控制台encodeuri 不能編碼!(嘆號)
- 5、對url中的參數進行轉碼
php和javascript中文編碼不一樣
你的PHP頁面編碼用的是GB2312,而js的encodeURIComponent按utf-8轉碼(不論頁面編碼是什麼)
解決方法:
PHP端echo urlencode(iconv(‘gbk’,’utf-8′,’中文’));
或者將文件編碼轉成utf-8
js還是用encodeURIComponent
encodeURIComponent()加密地址後提交到php怎麼處理?
雖然我不知道encodeURLComponent()這個函數,但應該要轉碼吧,url中除了字母-_之外的字符瀏覽器會自動轉碼的,而且這個是有規律的,不叫亂碼,
php有個urldecode()函數轉碼;
js的encodeuricomponent 的php解碼到底是用urldecode還是iconv()
JS:document.write(encodeURIComponent(“”))
輸出:http%3A%2F%2F
PHP:echo urlencode(“”);
輸出:http%3A%2F%2F
瀏覽器的js控制台encodeuri 不能編碼!(嘆號)
原因很簡單, 在HTTP請求中只要跟了””在PHP里就會被認作是一個參數. 比如你這個問題的百度URL ;push=coreoldq=1 按照你test1.php?url=’+content的寫法, 傳進PHP的實際上是3個參數: print_r($_GET): Array ( [url] = [push] = core [oldq] = 1 ) 最簡單的解決辦法是在Javascript中先用encodeURIComponent把URL編碼: var content = encodeURIComponent(oConBox.value); 再傳進PHP就可以了.
對url中的參數進行轉碼
url參數進行轉碼的方式:
1.encodeURI()
2.encodeURIComponent()
3.Base64.encode
示例1:
var url = ” 儀錶盤ss=dashvv=星星”
encodeURI(url)
—
示例2:
var url = ” 儀錶盤ss=dashvv=星星”
encodeURIComponent(url)
—
示例3:
是只對參數進行轉碼,使用split對url進行拆分
var url = ” 儀錶盤ss=dashvv=星星”
var newSearch = url.split(‘?’)[1].split(”).map(item = {
const params = item.split(‘=’);
return ${params[0]}=${encodeURIComponent(params[1])}
}).join(”);
url = ${url.split(‘?’)[0]}?${newSearch} ;
console.log(url)
注意:如果轉碼過後的url需要打開一個新的頁面,chrome上會對轉碼的url進行解碼,這樣會達不到相應的轉碼效果。
可以使用Base64.encode替換encodeURIComponent
var url = ” 儀錶盤ss=dashvv=星星”
var newSearch = url.split(‘?’)[1].split(”).map(item = {
const params = item.split(‘=’);
return ${params[0]}=${Base64.encode(params[1])}
}).join(”);
url = ${url.split(‘?’)[0]}?${newSearch} ;
console.log(url)
類似這樣的效果: ;sss=ZGFzaGJvYXJkLWFsbDE1NTU2NjQyMjE5MDk=
如果是直接獲取網上的url可以
const newSearch = location.search.substring(1).split(”).map(item = {
const params = item.split(‘=’);
return ${params[0]}=${encodeURIComponent(params[1])} }).join(”);
${location.href.split(‘?’)[0]}?${newSearch} ;
原創文章,作者:YMVF,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/140169.html