0

我正在处理的一个项目要求我将一个位于 UTF-8 编码页面上的 HTML 表单发布到仅接受 ISO-8859-1 编码的服务器,然后在 iFrame 中显示结果。这在 FF、Chrome、Safari 中运行良好……但在 MSIE(甚至 9)中不起作用。IE 坚持以 UTF-8 格式发布表单。我无法访问要发布到的服务器,也无法更改要发布的页面的字符集。

表单包含 2 个具有恒定值的元素,但其中一些值包含德语变音符号(Ä、Ö 和 Ü)。

所以我想出的解决方案是将表单发布到“代理脚本”,它解码请求值,通过 cURL 发布所有内容并返回结果。但是托管此站点的服务器当然不支持 cURL。

那么有人知道如何解决这个问题吗?我现在可以使用任何简单有效的解决方案(甚至是一些非常奇怪的 Javascript 解决方案)。

问候,杰克

4

1 回答 1

0

这是一个简单的技巧:

在表单中插入一个隐藏的输入字段,其中包含一个实体,该实体仅出现在您发布(或执行 GET)接受的服务器的字符集中。

示例:如果表单位于服务 ISO-8859-1 的服务器上,并且表单将发布到期望 UTF-8 的服务器,则在表单中插入如下内容:

<input name="iehack" type="hidden" value="&#9760;" />

然后,IE 将“检测”表单包含 UTF-8 字符,并在您 POST 或 GET 时使用 UFT-8。奇怪,但它确实有效。

于 2012-08-30T10:57:01.160 回答