URLEncoder 和 HTML 表单 URL 编码之间的差异
在尝试使用 java.net.URLEncoder 对包含空格字符的字符串进行编码时,您可能会注意到意想不到的结果。输出不遵循预期的“Hello World”格式,而是生成“Hello World”。这源于 URLEncoder 的行为和 HTML 表单 URL 编码之间的细微差别。
URLEncoder 根据 HTML 规范进行操作,以对 HTML 表单中的 URL 进行编码。根据 HTML 规范,控件名称和值必须转义空格字符,不能使用“,”,而是使用“”符号。
但是,您的要求可能是将空格字符专门编码为“”。为此,可以对编码字符串执行简单的替换操作:
String encodedString = java.net.URLEncoder.encode("Hello World", "UTF-8"); String correctedString = encodedString.replace("+", "%20");
此更正将“ ”符号替换为“,”,从而得到所需的“Hello World”格式。
以上是为什么`URLEncoder`将空格编码为'”而不是'”?的详细内容。更多信息请关注PHP中文网其他相关文章!