首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法检索urlencoded元音。[解决方案:使用UTF8]

无法检索urlencoded元音。[解决方案:使用UTF8]
EN

Stack Overflow用户
提问于 2009-09-03 09:49:05
回答 2查看 2.1K关注 0票数 1

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

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

如果我输入德语Umlauts或特殊字符,如"ü“或”«“,这些字符将自动urlencoded。但是如果我想读取这个参数,我总是得到null

代码语言:javascript
复制
String description = request.getParameter("description");

如果我输入一些中文单词,比如專業人士,它们也是are编码的。但是,我可以在不检索null的情况下读取它们。

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

代码语言:javascript
复制
accept-charset="ISO-8859-1" enctype="application/x-www-form-urlencoded"

我的问题是:为什么我不能检索urlencoded德语Umlauts,而是一些中文单词?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2009-09-03 10:22:44

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

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

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

代码语言:javascript
复制
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" 
                         pageEncoding="ISO-8859-1" %>
票数 1
EN

Stack Overflow用户

发布于 2009-09-03 10:17:03

我怀疑您的页面或servlet编码是UTF-8。拉丁文-1编码的Umlaut是一个无效的UTF-8序列,因此得到的结果为NULL。

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

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1372468

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档