如何处理url中的特殊字符作为参数值?
2022-09-04 02:51:17
任何人都可以建议如何处理下面的url作为strLocation的参数值具有特殊的字符?提前致谢
http://localhost:8080/safp/contacts/FirmAddress.do?btnAction=FirmAddress&firmId=122379069&strLocation=!@#$%^&*()_+&async=true&newAccID=112
任何人都可以建议如何处理下面的url作为strLocation的参数值具有特殊的字符?提前致谢
http://localhost:8080/safp/contacts/FirmAddress.do?btnAction=FirmAddress&firmId=122379069&strLocation=!@#$%^&*()_+&async=true&newAccID=112
使用 URL 编码器使用特殊字符对 URL 字符串进行编码。对字符串进行编码时,以下规则适用:
- 字母数字字符“a”到“z”,“A”到“Z”和“0”到“9”保持不变。
- 特殊字符“.”、“-”、“*”和“_”保持不变。
- 空格字符 “ ” 将转换为加号 “+”。
- 所有其他字符都是不安全的,并且首先使用某种编码方案转换为一个或多个字节。然后,每个字节由 3 个字符的字符串“%xy”表示
,其中 xy 是字节的两位数
十六进制表示形式。建议使用的编码
方案是 UTF-8。但是,出于兼容性原因,如果未指定
编码,则使用平台
的默认编码。
例如,使用 UTF-8 作为字符串将转换为的编码方案,因为在 UTF-8 中,字符 ü 编码为两个字节 C3(十六进制)和 BC(十六进制),而字符 @ 编码为一个字节 40(十六进制)。The string ü@foo-bar
The+string+%C3%BC%40foo-bar
Use URLEncoder.encode()
String url="http://localhost:8080/safp/contacts/FirmAddress.do?btnAction=FirmAddress&firmId="+URLEncoder.encode("122379069","UTF-8")+"&strLocation="+URLEncoder.encode("!@#$%^&*()_+","UTF-8")+"&async=true&newAccID=112";
注意:不要使用整个网址,因为它也会对 from 进行编码encode
//
http://