`

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

 
阅读更多

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

转自http://blog.zol.com.cn/795/article_794546.html


一个很少用到的表单属性,利用它实现在不同编码的页面里实现表单的提交也是一种很方便的解决方法。转自老王的baidu空间,记录在此。
作者:老王

问题背景:

两个应用编码不同,一个是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