java - 无法检索 urlencoded 变音符号。 [解决方案: use UTF8]

标签 java jsp webforms urlencode diacritics

我正在使用 JSP 脚本编写一些网站,并且遇到了 urlencoded web-formular 参数的奇怪问题。该网站本身采用 iso-8859-1 编码。

我有一个简单的网络表单,其中有一个名为description的字段。

如果我输入德语变音符号或特殊字符(例如“ü”或“ß”),这些字符会自动进行 urlencoded。但如果我想读取这个参数,我总是得到null

String description = request.getParameter("description");

如果我输入一些中文单词,例如专业人士,它们也会被urlencoded。但是,我可以在不检索 null 的情况下读取它们。

无论我使用“post”还是“get”作为方法,此行为都不会改变。 我尝试用下面的文本“拉皮条”我的网络表单 - 但这也没有帮助。

accept-charset="ISO-8859-1" enctype="application/x-www-form-urlencoded"

我的问题是: 为什么我无法检索到 urlencoded 德语变音符号,但检索到一些中文单词?

最佳答案

带有 ISO-8859-1 的中文不起作用,但德语应该起作用。如果中文是编码的,也许你的表单是用 UTF-8 编码的?您使用哪种浏览器? JSP的编码是什么?您应该始终使用 UFT-8,而不是 Latin 1。现在每个浏览器和服务器都应该在每个操作系统上支持 UTF-8。

我的经验是,GET 通常不适用于编码,但 POST 应该可以。表单参数accept-charset和enctype是正确的。您使用什么服务器?

JSP 内容类型通常由以下方式设置:

<%@ page language="java" contentType="text/html; charset=ISO-8859-1" 
                         pageEncoding="ISO-8859-1" %>

关于java - 无法检索 urlencoded 变音符号。 [解决方案: use UTF8],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1372468/

相关文章:

html - 如何在移动浏览器中更改/禁用输入文本颜色?

java - Python 3 中的自定义排序

java - 负载均衡情况下的 OpenID

java - 如何使用单个 HTML 表单上传图像并通过单个提交按钮存储其详细信息?

java - JSP中IF语句执行错误

java - JSP 是否只运行 JAR 的单个实例

javascript - 为什么在此页面上回发后 form.reset() 不起作用?

java - 在java中指定位数

java - Spring Boot 多模块 考虑在配置中定义一个 type 的 bean

php - 什么时候适合使用AJAX?