虚拟主机域名注册-常见问题网络编程问题 → CSS/HTML


form提交不同utf8 gb2312编码的数据乱码
作者:

今天要给某phpwind论坛调整用户登录方式,颇为棘手。该系统结构较为复杂(历史原因),gbk编码的ucenter;utf-8编码的phpcms;gbk编码的phpwind论坛;通行证系统使用我们开发的ucenter扩展登录系统来兼容phpwind论坛。原来论坛是没有登录的,全部跳转到通行证登录。现在要给论坛加个快速登录栏(将用论坛默认的快速登录栏),要求是激活通行证并返回所在论坛页。我们之前尽量避免不同编码的cms和论坛进行交互,所以计划开发phpwind激活ucenter的插件。

人总是想偷懒的,先试试把用户名、密码、返回地址直接交给phpcms进行登录。搞了半天它不接收,诧异了~~最后查出是要给submit按钮加上name="dosubmit" 囧~~

接着就是把数据转换编码然后提交过去(我不知道有个叫accept-charset的属性),网上找了个转编码的js函数,运行完,假的。通过搜索发现了form表单有个accept-charset属性,用来设置表单提交时的编码。哇~~幸运!

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

这个属性在Firefox下正常,ie下不能用,又要鄙视ie了
最后通过一个小技巧来解决了ie下不支持accept-charset的问题,就是在表单提交时改变整个页面的编码(onsubmit="document.charset='utf-8';")

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

测试通过,OK~~大功告成



来源:
阅读:2373
日期:2017-10-27

推荐朋友 】 【 评论 】  【 字体: 】 
上一篇:PHP内置大小写转换函数
下一篇:js实现省市区县三级联动 可自定义初始值
  >> 相关文章
  没有相关文章。
发表评论


点  评: 字数0
用户名:  密码:

  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款