表单数据提交时的字符编码问题

人老了,以前研究过的东西都忘记了。所以还是记录下来比较好。

废话不说,翠花,上代码:

Html代码

<!DOCTYPE html><html xmlns="http://www.w3.org/1999/xhtml"><head><title>The Character Encoding for Form Submission</title><script>function $(id) {    return document.getElementById(id)}function createPropertyEditor(name) {    var p = document.createElement('p')    p.appendChild(document.createTextNode(name + ' = '))    var input = document.createElement('input')    input.type = 'text'    var get = new Function('this.value = String($name); this.select()'.replace(/\$name/g, name))    get.call(input)    input.onfocus = get    input.onchange = new Function('     \        try {                           \            $name = this.value          \        } catch(e) {                    \            alert(e.message)            \        } finally {                     \            this.value = String($name)  \        }                               \    '.replace(/\$name/g, name))    p.appendChild(input)    $('properties').appendChild(p)}var formwindow.onload = function () {    form = document.forms[0]    createPropertyEditor('document.charset')    createPropertyEditor('document.defaultCharset')    createPropertyEditor('document.characterSet')    createPropertyEditor('document.inputEncoding')    createPropertyEditor('document.xmlEncoding')//  createPropertyEditor('document.mimeType')    createPropertyEditor('form.acceptCharset')    createPropertyEditor('form.method')    createPropertyEditor('form.enctype')//  createPropertyEditor('form.encoding')}</script></head><body><form>    <input name="_charset_" type="hidden">    <input name="test" type="text" value="简体-繁體-English">    <input type="submit">    <div id="properties"></div></form></body></html>

如果你总是使用utf-8编码,则基本不用为编码问题伤脑筋。但是总有些时候,事情超出了你的掌控范围。

通常表单提交时将按照文档本身的编码进行编码。如果是一个gb2312的文档,如何按照utf-8编码提交呢?此外是否可以通知服务器,请求是按照何种方式编码的呢?

以上代码测试了浏览器为此类问题所提供的各种特性。可将上述代码保存为不同的编码,如UTF-8、GB2312、Big5等(可以加上meta httpequiv=content-type content=text/html;charset=xxx),然后进行测试(即修改document.charset和form.acceptCharset然后提交,观察URL参数的结果)。

以下是一些浏览器的测试结果(仅测试了GET请求):

Text代码

支持document.charset 支持form.acceptCharset 支持_charset_

IE6    Y           N*            Y
FF2    N           Y            Y
Safari3  Y           Y            N
Chrome1  Y           Y            N
Opera9   N*          Y            Y

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索form
, 编码
, input
, document
, name
, charset
form表单提交input
form表单提交编码格式、表单提交特殊字符转义、form表单提交设置编码、form表单提交特殊字符、form表单提交 编码,以便于您获取更多的相关知识。

时间: 2024-11-01 23:11:24

表单数据提交时的字符编码问题的相关文章

服务器端的Form表单在提交时如何在新窗口中打开

问题描述 我在.net2005里面创建了一个页面,在这个页面里面有很多数据传到另外一个页面,而且此页面要在新窗口中打开.当我把form的target设置为_blank时,而没次向服务器回传时都会打开一个新窗口,而我是只想在最后点击提交时才想打开一个新窗口,不知道该怎么解决?请您给予指点 解决方案 解决方案二: 用session传递吧用完清掉就好了解决方案三: 前几天给别人写的例子,不知道能不能解决楼主的问题<htmlxmlns="http://www.w3.org/1999/xhtml&q

springMVC 表单数据提交问题

问题描述 如果对象是泛型,要怎样提交到controller? 问题补充:表单数据,类似于struts的Form对象 解决方案 1. html表单对象不存在泛型.2. 如果要提交对象的话 user.id. user.name controller中可以封装.解决方案二:是提交数组吧? 后台可以使用request.getParameterValues(arg0); 来接. 比如:@RequestMapping(value = "/demo/deductionScore", method =

ASP程序表单数据提交问题

程序|数据|问题 问:将表单数据提交到数据库中,如何能够记住表单数据的段落格式呢,便于在显示的时候能保证段落格式 答: function HTMLEncode2(fString) fString = Replace(fString, CHR(13), "") fString = Replace(fString, CHR(10) & CHR(10), " ") fString = Replace(fString, CHR(10), "")

真正解决表单重复提交问题php代码

  以前用的js表单防止重复提交方法  代码如下   <script type="text/javascript"> var checkSubmitFlg = false; function checkSubmit() {  if (!checkSubmitFlg) { // 第一次提交   checkSubmitFlg = true;   return true;  } else { //重复提交   alert("Submit again!");  

解读HTML:命名空间与字符编码

在做项目的过程中,我们经常会建立各种各样的规范,以方便团队之间更好的合作更好的完成项目:同样我们也经常会听到各种各样的协议,比如Google的IM软件Gtalk使用的开放的XMPP协议,只要其他IM软件也遵循XMPP协议就能与Gtalk使用互通:而互联网上的信息无以计数,这些信息本身是独立存在的,如何将其串联并呈现在用户眼前,就需要使用到HTTP协议. 同样的道理,因为浏览器们各自的内核不同,对于默认样式的渲染也不尽相同,所以就需要一份各浏览器都遵循的规则来保证同一个网页文档在不同浏览器上呈现出

关于计算机字符编码的问题!

问题描述 关于计算机字符编码的问题! 计算机字符编码一直困扰我,真希望有大牛帮我解惑: 1. 输入法在输入文本的时候其实是输入对应字符编码集的对应字符的二进制编码,那么这时如果要保存,只需要保存这些二进制字节就可以了,读的时候用输入时使用的编码集解码即可,为什么还有选择保存字符编码这一项,以上只是我的理解.比如: 在windows中使用记事本时,我们输入:你好,世界! 这时我们使用的是输入法在当前环境中默认的字符编码方式进行输入的,那么我们 需要直接保存即可,但保存时有额外选项,即选择编码方式的

《C语言编程魔法书:基于C11标准》——2.5 字符编码

2.5 字符编码 我们从2.2节到2.4节讲述的都是数值信息(整数与浮点数),本小节我们将讨论字符信息.在计算机中我们所处理的字符信息,即文本信息(包括数字.字母.文字.标点符号等)是以一种特定编码格式来定义的.为了使世界各国的文本信息能够通用,就需要对字符编码做标准化.我们现在最常用也最基本的字符编码系统是ASCII码(American Standard Code for Information Interchange,美国信息交换标准码).ASCII码定义每个字符仅占一个字节,可表示阿拉伯数

空表单提交时,打印都不为空,除了中文显示几个问好(选择框),都看不到值.编码都设置过,为GBK,网页中文没问题

问题描述 空表单提交时,打印都不为空,除了中文显示几个问好(选择框),都看不到值.编码都设置过,为GBK,网页中文没问题,网页是从网上下过来的.注如下s=q=a=??.??d=g=在线等. 解决方案 解决方案二:自己顶一下解决方案三:自己摸索出了,原来在request和response都要设置为接受"GBK"

Ajax 提交表单数据到入库的全盘操作流程

 以下是Ajax 提交表单数据到入库的全盘操作流程,希望本文对广大php开发者有所帮助,感谢阅读本文 *******php项目中当我们要对数据库进行写入操作时,有时会因为代码没有做防sql注入工作,导致各种不可预知的错误*******    1,index.htm 这是一个很简单的注册页面l 我这是以ajax形式提交数据   代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "htt