测试环境,windows XP,IE6、IE8、firefox、chrome,测试结果可能会根据操作系统不同,有所差异
前端需求中经常会碰到前后台中文编码的问题,以下罗列了meta charset设置为GBK或UTF-8的情况下,中文的编码的场景和结论:
a链接中带中文
- chrome、firefox会根据meta charset属性,自动转码,且编码带%
- IE也会根据meta charset属性,传递数据,不带%
有时会碰到前端拼接url中带中文的问题,这时需要注意,最好对中文部分通过js的encodeURIComponent编码。注意不能对整个url进行encodeURIComponent编码,因为encodeURIComponent会对url中的"/"转码。
form表单提交
无论get、post提交,IE、chrome、firefox,均会根据meta charset属性,转码,编码带%。
在chrome、firefox下,若表单带accept-charset属性,则会根据该属性决定提交中文的编码
Ajax请求(原生)
get请求
chrome根据meta charset属性,自动转码,且编码带%
firefox无论UTF-8还是gbk,均使用utf-8编码,编码带%
IE无论UTF-8还是gbk,均使用gbk编码
post请求
IE、chrome、firefox,均会使用utf-8编码,无%
设置"Content-Type"为"application/x-www-form-urlencoded; charset=gbk;"也同样为UTF-8编码发送
其中chrome、firefox会自动修改charset为utf-8,IE不修改
小结
前端与后台合作,遇到中文问题,需要做好沟通,指定中文编码
- 碰到需要前端拼接url中带中文,需要对链接中的中文进行encodeURIComponent编码,以UTF-8的格式传过去。如果后台需要使用GBK的编码,最好拒绝,因为前端对编码的转换较弱。
- form中的中文,根据meta charset决定提交的中文编码,GBK编码提交就是GBK,UTF-8编码提交就是UTF-8
- Ajax提交(原生),get请求,对中文进行encodeURIComponent编码,post请求默认为UTF-8编码。若使用jQuery的get请求,用data传递数据过去,jQuery会自动帮你将中文进行encodeURIComponent编码。
参考资料
相关推荐
在使用myeclipse过程中,我使用ajax同步请求传递参数到后台却出现中文乱码,这是我解决问题的代码,希望对您有所帮助
中文乱码问题与国际化,如何避免中文乱码问题!
前后台传值乱码问题万能思想,通用 只说思想不讲代码!很少 很容易,看懂就完全不会出现乱码了!
1. 汉字乱码 2. 空格变成 + 号 本资源演示Delphi代码,实现javascript能正确进行Base64解码,不出现上述2个问题。 解决思路:进行Base64前先进行URL编码,在进行URL编码的时候,注意设置不需要SpaceAsPlus选项。 ...
layui分页及日期控件中文显示乱码,下载后解压...文件主要适用于前端及时开发,解决layui部分功能显示出现乱码问题,主要涉及到表格渲染后分页栏工具中文显示乱码,以及使用layui日期控件所显示的日期中文乱码问题。
我们在javaWeb项目时,使用doget和dopost总是会出现各种原因的中文乱码问题,楼主在查阅大量资料后,将为什么有这样的问题,和如何解决这种问题做个总结。 思维导图: 1. 应答乱码处理(response输出页面时乱码) 1.1 ...
使用方法:utf8to16(base64decode(你的加密字符串));
解决在SSH框架中中文显示乱码问题,以及向oracle中插入乱码问题。
:) 场景一:write写出来的内容是utf-8格式的,如果保存的write数据中有不是utf-8编码的中文,对write嵌套俩次以上就会有乱码。由于手头没有现成的文件,刚才临时制作了一个,这是1.htm页面的代码: 代码如下:<...
apache-tomcat-8.0.33,针对有些项目的前端页面中,又有UTF-8,又有GBK,但是开发工具只配置了一种编码,导致其他页面出现部分乱码,并且更改该文件的编码也无效。而该工具可以自动解决UTF-8和GBK乱码的问题。 使用...
j2ee项目中中文乱码问题集锦 》》》》 6 如果用Eclipse开发,把工程编码改为utf-8 7 用myeclipse提供的数据库前端工具,URL也进行设置 jdbc:mysql://localhost:3306/mysql?useUnicode=true&;characterEncoding=...
二维码Zbar(解决中文乱码)附带demo
写一个简单的例子程序: # coding:utf-8 import flask from flask import json, jsonify, request, render_template app = flask.Flask(__name__) @app.route("/api", methods=["GET", "POST"]) ...
web前端三种常见的通过JS加密文本方式,包含md5、base64、sha1,源文件
jsp eclipse乱码分类及解决办法
解决Struts2.0中文乱码详细方法。
下面小编就为大家带来一篇页面get请求 中文参数方法乱码问题的快速解决方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
JAVA Web 中文乱码问题
《单页Web应用:JavaScript从前端到后端》大约三分之二的内容专门讲解单页Web应用的客户端开发,先定义何为JavaScript单页应用,接着介绍书中使用的单页Web应用的架构,然后依次讲解Shell模块、功能模块、Model模块...