`
tidus
  • 浏览: 9621 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
最近访客 更多访客>>
社区版块
存档分类
最新评论

利用form的“accept-charset”在不同编码的页面间提交表单

阅读更多
问题背景:

两个应用编码不同,一个是GBK编码,另一个是UTF-8编码。现在要在GBK编码的应用里使用表单向UTF-8编码的应用里提交数据,很显然,如果不做特殊处理的话,会出现乱码。

解决方案:

当然了,可以自己使用ICONV或者MB扩展来转换编码,但这不是我们要的。

在W3里介绍了一个不太常见的属性:accept-charset,用它可以完成我们的需求。

在GBK编码的页面里编写如下代码:

<form method="post" action="..." accept-charset="utf-8">
...
</form>

如此的代码在Firefox等正常的浏览器下没有任何问题,但是遇到IE这个变态浏览器就不灵光了,我们还得用点不入流的手段Hack一下:

<form method="post" action="..." accept-charset="utf-8" onsubmit="document.charset='utf-8';">
...
</form>

剩下的工作浏览器会搞定。
分享到:
评论

相关推荐

    jsp中在提交表单时的中文处理问题

    2. 请求编码转换:JSP的`&lt;form&gt;`标签有一个`accept-charset`属性,可以用来指定表单提交时的数据编码。例如: ```html &lt;form action="submit.jsp" method="post" accept-charset="UTF-8"&gt; ``` 这将告诉浏览器以...

    不同编码的页面表单数据乱码问题解决方法

    本问题中,用户遇到了一种特殊的情况,即在一个使用UTF-8编码的页面上填写的表单数据在提交到使用GB2312编码的服务器后出现乱码,从而导致查询结果异常。 `accept-charset` 是HTML表单元素`&lt;form&gt;`的一个属性,它...

    tomcat过滤器,处理表单提交出现乱码

    - 确保表单提交的`&lt;form&gt;`标签中的`accept-charset`属性设置为`UTF-8`,例如:`&lt;form action="submit" method="post" accept-charset="UTF-8"&gt;`。 - 检查IDE、编辑器和服务器的编码设置,确保它们都统一使用UTF-8...

    cgi_form_gb2312.html

    4. **表单提交编码**:在HTML表单中,可以通过`accept-charset`属性指定表单数据的编码,例如`&lt;form accept-charset="GB2312"&gt;`。 5. **服务器环境变量**:有些CGI实现会依赖服务器传递的环境变量,如`CONTENT_TYPE...

    Java中常用的关于编码解码方法

    在HTML表单中提交数据时,可以通过`&lt;form&gt;`标签的`accept-charset`属性来指定字符集。 示例代码: ```html &lt;form accept-charset="GB2312"&gt; ... &lt;/form&gt; ``` 如果不设置`accept-charset`属性,那么浏览器会使用...

    Struts如何解决中文添加到数据库

    因此,需要在struts-config.xml配置文件中,为ActionForm指定`accept-charset="UTF-8"`属性,或者在JSP页面中通过`&lt;form&gt;`标签的`accept-charset`属性设定请求编码为UTF-8。 - **响应编码**:确保在JSP页面中设置`...

    html中关于form与表单提交操作的资料集合

    这里我们介绍一下form元素与表单提交方面的知识。 form元素 form元素的DOM接口是HTMLFormElement,继承自HTMLElement,因而它与其他的HTML元素拥有相同的默认属性,不过它自身还有几个独有的属性和方法: 属性值 ...

    Java Web编程中页面跳转乱码问题的解决方案.zip

    2. 表单提交编码:在HTML表单中,通过`accept-charset`属性指定表单数据的编码,设置为UTF-8。 ```html &lt;form action="submit.jsp" method="post" accept-charset="UTF-8"&gt; ``` 3. URL编码:对于URL中的中文参数,...

    struts2 使用action属性接收中文参数(post提交)

    - 表单编码:在HTML表单中,可以使用`accept-charset`属性指定编码,如`&lt;form method="post" accept-charset="UTF-8"&gt;`。 - Servlet容器配置:在Tomcat等Servlet容器的配置文件(server.xml或web.xml)中,可以...

    Form Editor-crx插件

    语言:English 用于编辑对Web服务器的...支持编辑表单accept-charset。 版本1.3 1.支持保存提交历史记录。 版本1.3.3 1.更新到清单V2。 您可以在这里找到源代码:https://github.com/zsxwing/Form-Editor欢迎任何贡献。

    jsp中charset和pageEncoding

    - **表单提交乱码**:通过设置表单提交时的编码方式,如`&lt;form action="submit.jsp" method="post" accept-charset="UTF-8"&gt;`。 #### 三、示例分析 接下来,我们将通过一个具体的例子来深入理解如何在JSP中正确...

    页面间跳转乱码

    - 在HTML表单中明确指定`charset`属性,例如`&lt;form action="..." method="post" accept-charset="UTF-8"&gt;`。 - 使用JavaScript修改`&lt;meta&gt;`标签的`charset`属性,确保与服务器端保持一致。 #### 3.2 转码处理 ...

    jsp页面乱码最简单的解决办法

    在表单提交时,可以通过在HTML表单中设置`accept-charset`属性来指定字符集编码,例如: ```html &lt;form action="/submit" method="post" accept-charset="UTF-8"&gt; 提交 &lt;/form&gt; ``` 同时,在后端处理请求时也...

    JSP、SERVLET_中的汉字编码问.txt

    - 在客户端表单提交时,确保表单元素中包含正确的字符编码: ```html &lt;form action="/submit" method="post" accept-charset="UTF-8"&gt; 你好世界"&gt; 提交 &lt;/form&gt; ``` 3. **Servlet接收处理**: - 在Servlet类...

    Form元素总结.doc

    - **accept-charset**: 定义了服务器接受何种字符集的表单数据。 - **accept**: 指定服务器处理表单时所能接受的数据类型。虽然不是所有浏览器都支持,但在某些场景下仍有必要了解。 - **target**: 指定表单数据提交...

    03.SpringMVC中如何解决POST请求中文乱码问题GET的又如何处理呢.zip

    3. **表单提交的编码设置**: 确保HTML表单的`&lt;form&gt;`标签中的`accept-charset`属性设置为`UTF-8`,如`&lt;form action="/submit" method="post" accept-charset="UTF-8"&gt;`。 对于GET请求的中文乱码问题,处理方式相对...

    有关JSP页面乱码问题的解决

    例如,在提交表单时,可以使用`&lt;form method="post" action="process.jsp" accept-charset="gb2312"&gt;`来指定表单的编码格式。 #### 2. 数据库操作导致的乱码问题 数据库操作过程中也容易出现乱码问题,尤其是在...

    java面试题_第二阶段.pdf

    这样,浏览器在渲染页面时会使用UTF-8编码,同时在提交表单时也会按照这个编码发送数据。 5. **表单提交编码**:在HTML表单中,可以通过`accept-charset`属性指定提交的编码,例如: ```html &lt;form action=...

Global site tag (gtag.js) - Google Analytics