zoukankan      html  css  js  c++  java
  • 利用form的“acceptcharset”在不同编码的页面间提交表单

    accept-charset
    一个很少用到的表单属性,利用它实现在不同编码的页面里实现表单的提交也是一种很方便的解决方法。转自老王的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>

    剩下的工作浏览器会搞定。

  • 相关阅读:
    c基础
    一维数组,字符数组
    循环结构
    分支结构
    结构体
    Python简介和入门
    Python基础(一)
    Markdown 基础学习
    PyCharm 专业版安装
    Python基础(二)
  • 原文地址:https://www.cnblogs.com/mumble/p/1487701.html
Copyright © 2011-2022 走看看