Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Can';t检索URL编码的umlauts。[解决方案:使用UTF8]_Java_Jsp_Webforms_Urlencode_Diacritics - Fatal编程技术网

Java Can';t检索URL编码的umlauts。[解决方案:使用UTF8]

Java Can';t检索URL编码的umlauts。[解决方案:使用UTF8],java,jsp,webforms,urlencode,diacritics,Java,Jsp,Webforms,Urlencode,Diacritics,我正在用JSP脚本编写一些网站,我遇到了一个关于URL编码的web公式参数的奇怪问题。站点本身以iso-8859-1编码 我有一个简单的webform,其中有一个名为description的字段 如果我输入德语Umlauts或特殊字符,如“ü”或“ß”,这些字符将自动进行URL编码。但是如果我想读取这个参数,我总是得到null String description = request.getParameter("description"); 如果我输入一些中文单词,比如專業人士,它们也是URL

我正在用JSP脚本编写一些网站,我遇到了一个关于URL编码的web公式参数的奇怪问题。站点本身以iso-8859-1编码

我有一个简单的webform,其中有一个名为
description
的字段

如果我输入德语Umlauts或特殊字符,如“ü”或“ß”,这些字符将自动进行URL编码。但是如果我想读取这个参数,我总是得到
null

String description = request.getParameter("description");
如果我输入一些中文单词,比如
專業人士,它们也是URL编码的。但是,我可以在不检索
null
的情况下读取它们

无论我使用“post”还是“get”作为方法,这种行为都不会改变。 我试图用下面的文字“拉皮条”我的网络表单,但也没用

accept-charset="ISO-8859-1" enctype="application/x-www-form-urlencoded"
我的问题是:
为什么我不能检索URL编码的德语Umlauts,但检索一些中文单词?

我怀疑您的页面或servlet编码是UTF-8。Latin-1编码的Umlaut是无效的UTF-8序列,因此将得到NULL

当你输入中文时,浏览器知道它不能用拉丁语编码,所以它会自动转换成UTF-8。这就是为什么中文有效


如果您可以发布一些HTTP跟踪,我们可以确认这一点。

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

我的经验是,GET ist通常不使用编码,但POST应该这样做。表单参数accept charset和enctype正确。你用什么服务器

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

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


description始终是硬编码的字符串“description”?是的,它始终是同一个字符串。我知道拉丁语1是“过时的”—但我坚持使用一些旧系统。。我可以切换到UFT-8,但那不是那么容易。文件本身的编码、元标记和页面指令都设置为iso-8859-1。浏览器:Firefox、IE 6、Safari、Opera。。您想要的服务器:这个表单的IIS+Resin(来自caucho.com的JavaEE服务器)仅用于测试。我也喜欢邮寄。感谢您的帮助。请不要以这种方式设置请求或响应的编码。只需页面上的内容类型。谢谢!我明天就试试。为什么通过page指令设置这些编码更好?好吧,IE6的行为很奇怪。它只是不发送数据。。。我现在用的是UTF-8,所有的东西都很有魅力。。。