Java Web 应用程序经常会出现乱码的情况,这里可以通过 Servlet API 中的标准 Filter 来实现,也可以在 Web 容器配置 URIEncoding。这些都依赖于浏览器的请求方式。
在 Web 容器的配置文件中配置 URIEncoding = "UTF-8" | 使用 Servlet API 的标准 Filter | 结果 | |||
地址栏中直接输入链接(含汉字) | √ | × | 失败(编码成功) | ||
地址栏中直接输入链接(含汉字) | × | √ | 失败(编码成功) | ||
地址栏中直接输入链接(含汉字) | √ | √ | 失败(编码成功) | ||
页面内的普通链接(a 标签,含汉字) | √ | × | 编码成功,地址栏中直接显示汉字 | ||
页面内的普通链接(a 标签,含汉字) | × | √ | 编码失败 | ||
页面内的普通链接(a 标签,含汉字) | √ | √ | 编码成功,地址栏中直接显示汉字 | ||
form get 提交 | √ | × | 编码成功,地址栏显示编码后的汉字 | ||
form get 提交 | × | √ | 编码失败 | ||
form get 提交 | √ | √ | 编码成功,地址栏显示编码后的汉字 | ||
form post 提交 | √ | × | 编码失败 | ||
form post 提交 | × | √ | 编码成功 | ||
form post 提交 | √ | √ | 编码成功 |
因此,通过以上表格的总结,我们可以得出这样一个结论:URLEncoding 是针对 get 请求,Filter 是针对 post 请求。
时间: 2024-11-05 19:30:37