历史版本2 :URL传递特殊符号 返回文档
编辑时间: 内容长度:图片数:目录数: 修改原因:

1. 问题描述编辑

有些符号在URL中是不能直接传递的,如'+','%','&'等符号,那么如果要在URL中传递这些符号要如何实现呢?
2. 解决方案
2.1 在浏览器中直接输入
  • 解决方案
通过将这些特殊符号转换成16进制。
  • 常用特殊符号及其编码
+:URL 中+号表示空格其编码是%2B
空格:URL中的空格可以用+号或者编码 %20
/:分隔目录和子目录其编码是%2F
?:分隔实际的 URL 和参数其编码是%3F
%:指定特殊字符其编码是%25
#:表示书签其编码是%23
&:URL中的&表示指定的参数间的分隔符其编码是%26
=:URL中的=表示指定参数的值其编码是%3D
  • 示例
如要字符串“this%is#te=st&o k?+/”作为参数t的值传递给test.cpt,则URL为:test.cpt&t=this%25is%23te%3Dst%26o%20k%3F%2B%2F或者test.cpt&t=this%25is%23te%3Dst%26o+k%3F%2B%2F(空格可以用%20或+代替)
例如在test.cpt某个单元格中填入=$t,分页预览,在URL后增加上面的URL,效果如下:
2.2 集成到项目中
  • 解决方案
您可以通过JavaScript中自带的encodeURIComponent()方法对参数值进行编码转换。
  • 示例
同样实现的是字符串“this%is#te=st&o k?+/”作为参数t的值传递给test.cpt,则对应的代码如下:

  1. window.location="http://localhost:8075/WebReport/ReportServer?reportlet=test.cpt&t="+encodeURIComponent(encodeURIComponent("this%is#te=st&o k?+/"));