`
sjpsega
  • 浏览: 300387 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

前端中文编码问题

    博客分类:
  • web
 
阅读更多

 

前端中文编码问题

测试环境,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编码。

参考资料

分享到:
评论

相关推荐

    extjs 前后台交互参数出现中文乱码问题的解决方法

    ### extjs前后台交互参数出现中文乱码问题的解决方法 #### 问题背景与原因分析 在使用MyEclipse开发工具进行Web应用开发时,尤其是采用ExtJS框架结合Ajax技术进行前后端数据交互的过程中,可能会遇到一个常见的...

    前后台传值乱码问题万能思想,通用

    在IT开发过程中,前后端数据交互是一个...总结起来,处理前后台传值乱码问题的关键在于理解字符编码原理,掌握各种转码方法,并在前后端进行协调一致的处理。只要掌握了这种万能思想,就能在遇到乱码问题时游刃有余。

    Ajax中文乱码问题解决方案

    然而,在处理中文字符时,Ajax请求可能会遇到乱码问题,这主要是由于编码格式不一致或者处理不当导致的。本文将深入探讨Ajax中文乱码问题的成因,并提供一系列解决方案。 **一、问题原因** 1. **编码格式不一致**...

    解决JS传递中文乱码问题

    在Web开发过程中,我们经常会遇到中文字符编码的问题,尤其是在前后端数据交互时,中文字符的乱码问题更是让人头疼。本文将深入探讨如何解决JavaScript(简称JS)在传递中文字符时出现的乱码问题,并提供具体的解决...

    拦截器解决中文乱码问题

    总的来说,理解字符编码原理,结合拦截器的灵活运用,可以有效地防止和解决Web应用中的中文乱码问题,提高用户体验。同时,良好的编码习惯和规范,以及对各种编码问题的敏感度,也是开发过程中不可或缺的一部分。

    jquery+asp ajax 中文乱码问题解决文档

    通过以上两步,使得从前端到后端、再到返回前端的整个过程中的字符编码保持一致,从而有效避免乱码问题。 #### 解决方案二:修改jQuery源代码支持GB2312 对于那些仍然希望使用GB2312编码的场景,可以通过修改...

    WebSevice 中文乱码

    在IT领域,尤其是在Web开发中,遇到中文乱码问题是一个常见的挑战,特别是在处理WebService时。本文将深入探讨“WebSevice中文乱码”的问题,包括其产生的原因、影响以及解决方案,帮助开发者更好地理解和应对这一...

    web安全前端编码规范1

    《Web安全前端编码规范详解》 在Web应用开发中,前端的安全性同样至关重要。本文将详细阐述《Web安全前端编码规范》,旨在提升Web应用的安全性,预防潜在的攻击风险。 一、项目设计阶段的安全考虑 在项目初始设计...

    WEB前端编码规范

    ### WEB前端编码规范知识点详解 #### 一、规范目的 - **概述**:为了提高团队协作效率,并确保前端代码质量,便于后期维护和扩展,制定了这套前端编码规范。该规范适用于公司内所有前端开发人员,旨在提升代码的...

    Servlet及jsp解决中文乱码问题

    ### Servlet及JSP解决中文乱码问题 #### 一、引言 在Web开发中,中文乱码问题一直是困扰开发者的一大难题。特别是在使用Java技术栈(如Servlet与JSP)进行开发时,如果处理不当,很容易出现中文字符显示乱码的情况...

    express中文乱码解决

    本文将详细介绍如何在Express应用中解决中文乱码问题,包括设置正确的HTTP响应头、使用中间件进行数据解析以及对数据库操作时的编码处理。 #### 一、理解中文乱码的原因 中文乱码主要由以下几种情况引起: 1. **...

    Java Http请求传json数据乱码问题的解决

    在实际解决乱码问题的过程中,如果发现使用Base64加密传输中文数据还会出现问题,可以改用URL编码的方式来传输数据,即使用JavaScript的`encodeURI`函数对数据进行两次URL编码,后端接收到后进行一次URL解码即可。...

    润乾报表乱码问题

    总之,解决润乾报表乱码问题的策略包括确保数据源的正确配置、页面编码与数据源编码一致、操作系统中文字体完整安装、报表设计器字体设置正确,以及参数的正确编码和转码。需要系统地检查各个环节,确保整个数据处理...

    解决gb2312编码导致乱码问题

    标题提到的“解决gb2312编码导致乱码问题”是一个典型的字符编码问题,它涉及到如何在不同的编码格式之间正确转换,以确保中文字符在传输和显示时的正确性。gb2312是一种较老的中文字符编码标准,主要用于简体中文,...

    struts下的汉字乱码问题

    总结来说,解决Struts下的汉字乱码问题,需要从页面、过滤器、服务器配置和Struts核心Servlet等多方面进行设置,确保在整个请求生命周期中,中文字符始终以正确的编码进行处理。这不仅涉及了前端的展示,还涉及到...

    Request.QueryString 乱码问题

    ### Request.QueryString 乱码问题解析及解决方案 在Web开发中,经常会遇到通过URL...通过以上分析与解决策略,我们可以有效地解决`Request.QueryString`中出现的中文乱码问题,提高Web应用程序的稳定性和用户体验。

    【servlet】彻底解决doGet、doPost以及控制台中文乱码问题

    我们在javaWeb项目时,使用doget和dopost总是会出现各种原因的中文乱码问题,楼主在查阅大量资料后,将为什么有这样的问题,和如何解决这种问题做个总结。 思维导图: 1. 应答乱码处理(response输出页面时乱码) 1.1 ...

Global site tag (gtag.js) - Google Analytics