我正在使用 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/