1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > java对url参数编码_对URL中的参数编码和解码

java对url参数编码_对URL中的参数编码和解码

时间:2020-12-26 04:19:00

相关推荐

java对url参数编码_对URL中的参数编码和解码

有时,我们希望点击页面中的链接跳转其他页面,并且以get的方式传递一些参数。如果不对这些参数编码,可能会造成一些问题:

1. 参数中的空格可能会让你无法打开页面

2. 参数中的&符号会影响参数的解析

解决方法: 对链接中的参数编码,在请求的页面里先解析出参数,然后解码

具体做法:

1. 用urlencode函数对链接中的参数值

编码

$url = "?firstname=" . rawurlencode($firstname);

此函数返回字符串,此字符串中除了 -_.

之外的所有非字母数字字符都将被替换成百分号(%

)后跟两位十六进

制数, 空格则编码为加号(+

)。此编码与 WWW 表单 POST 数据的编码方式是一样的,同时与 application/x-

www-form-urlencoded

的媒体类型编码方式一样。由于历史原因,此编码在将空格编码为加号(+)方面与

RFC1738 编码(参见 rawurlencode()

)不同。

rawurlencode与urlcode几乎完全相同,除了将空格也编码成百分号(%

)后跟两位十六进制数的形式。至

此,最好用rawurlencode。

$url = "?firstname=" . rawurlencode($firstname);

2. 如果有多个参数的话,我们会用到&最为参数之间的分隔符。但是,如果参数值包含&符号,就可能造成参数解析错

误。 此时可以

$query_string = "?firstname=" . rawurlencode($firstname) . "&lastname=" . rawurlencode($lastname);

$url = "" . htmlentities($query_string);

或者直接将&写成 &

3. 在被请求的页面里使用urlencode或者rawurldecode解码:

$firstname = rawurldecode($_GET['firstname']);

Note(for myself):

1. 在涉及到编解码的问题是,只要保证用的字符集相同,就不会出现乱码的问题。

2. htmlentities vs html_entity_decode, htmlspecialchars vs htmlspecialchars_decode

3. htmlentities与htmlspecialchars的区别。

分享到:

-03-02 17:50

浏览 1262

评论

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。