gpt4 book ai didi

internet-explorer - 如何使 IE 以 UTF-8 格式发布 FORM 数据?

转载 作者:行者123 更新时间:2023-12-04 07:44:45 26 4
gpt4 key购买 nike

这是这个问题的延续:Java Jersey: Receive form parameter as byte array

即使包含页面使用 ISO-8859-1 字符集,我也需要以 UTF-8 格式发布表单数据。我找到了 FF 的解决方案,但不适用于 IE。
这是整个故事:

我使用 Jersey REST web 服务来接收从简单的 html

发布的数据。
当页面使用 UTF-8 字符集时,发布的数据也使用 UTF-8 编码,一切正常。
但是当页面使用 ISO-8859-1 字符集时,FORM 数据也使用 ISO-8859-1 发布,而 Jersey 在处理特殊字符时遇到问题(可能是因为它希望数据以 UTF-8 格式输入)。

Jersey 方法如下所示:
@Path("/someMethod")
@POST
@Produces(MediaType.TEXT_HTML)
@Consumes(MediaType.APPLICATION_FORM_URLENCODED)
public String someMethod(@FormParam("someParam") String someParam)
{
...
}

当然,如果我将整个页面编码更改为 UTF-8,一切正常,问题是我将表单动态添加到可能使用不同编码的现有页面(在其他作品中,我无法篡改页面编码)。

我有适用于 FF 但不适用于 IE 的解决方案。如果我添加 accept-charset="utf-8"归因于发布数据的 FORM,无论是否包含页面编码,FF 都会使用 utf-8 正确编码所有发布的数据,但这在 IE 中不起作用。

有任何想法吗?
谢谢!

最佳答案

Ruby on rails 应用程序使用这个技巧:它们在隐藏字段中添加一个 UTF-8 字符,该字符不能被强制转换为 ISO Latin 1。

他们使用的领域是

<input name="utf8" type="hidden" value="&#x2713;" />

它最终在查询参数中作为
search?param1=foo&param2=bar&utf8=✓

历史记录:之前 utf8=✓ , Ruby on rails 使用了一个花哨的雪人来强制使用 UTF-8: http://intertwingly.net/blog/2010/07/29/Rails-and-Snowmen .

关于internet-explorer - 如何使 IE 以 UTF-8 格式发布 FORM 数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6290822/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com