您的位置:

encodeuriphp的简单介绍

本文目录一览:

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} ;