解决ajax+php中文乱码的方法详解
发布时间:2024-06-05 09:49:08
标签:php,ajax,乱码
中文如果用表单提交的话,不会出现乱码,而用ajax提交就会出现乱码,这是什么原因呢?
我的理解是,我在写源码的时候,一般用记事本写,保存的时候默认用ANSI编码,源码中也没有用“<meta http-equiv=Content-Type content=text/html;charset=UTF-8>”或“header('Content-Type:text/html;charset=UTF-8');”指定网页编码,于是在浏览器中显示时它的编码被认定为“GB2312”。当前台向后台传递数据的时候,用表单提交的话,前后台之间用“GB2312”编码交流,不会出现乱码;而用ajax提交的话,ajax在前台把要发送的数据编码从“GB2312”转换 成“UTF-8”后再传给后台,然后再把接收到的后台返回的数据当成是 “UTF-8”而把它转换 成“GB2312”后显示在前台页面上,这样乱码就产生了。
如图:
所以要解决乱码,要在后台进行数据编码转换,后台接收到的数据用PHP的mb_convert_encoding("要转换的数据","gb2312","UTF-8")进行转换后存储到数据库。而后台返回到前台的中文数据也要用mb_convert_encoding("要返回的数据","UTF-8","gb2312")转换后返回。
0
投稿
猜你喜欢
- 复习回顾我们已经对Python内置模块-time中知道时间格式目前有三种。时间戳结构化时间字符串时间本期,我们将继续深入对time模块中所涉
- 1. 介绍目的:公司的支付宝小程序向指定用户发送红包。场景:积分兑换、邀请注册。2.开通权限2.1开通服务说明:进入支付宝商家中心 → 营销
- 定义切片区别于数组,是引用类型, 不是值类型。数组是固定长度的,而切片长度是可变的,我的理解是:切片是对数组一个片段的引用。var s1 [
- 数据库系统的安全性包括很多方面。由于很多情况下,数据库服务器容许客户机从网络上连接,因此客户机连接的安全对MySQL数据库安全有很重要的影响
- 本文实例讲述了python 队列基本定义与使用方法。分享给大家供大家参考,具体如下:队列的特征是:先进先出应用场景:消息通信、多进程间的协同
- 花几分钟时间欣赏一下我们写好的Web应用程序,然后我们再来搞点小破坏。 我们故意在 views.py 文件中引入一项 Python 错误,注
- 目录创建一个Django项目settings.py项目配置文件urls.py路由系统总结创建一个Django项目创建一个名为project的
- 一般情况下只有需要长期运行的项目才会去关注内存的增长情况,即使是很小部分的内存泄露经过长期的运行仍然会产生很大的隐患。python本身也是支
- 怎么从mysql从官网下载到安装到客户端的登陆呢?这篇文章给你讲的清清楚楚。第一步:到Mysql官网下载。从[https://dev.mys
- Python2>>> >>> isinstance(b'abc', bytes)True
- 窗口函数OVER (PARTITION BY xxx ORDER BY xxx ASC/DESC)测试数据表及数据测试表 employeeC
- 上回书说到了对人脸的检测,这回就开始正式进入人脸识别的阶段。关于人脸识别,目前有很多经典的算法,当我大学时代,我的老师给我推荐的第一个算法是
- 执行环境会负责管理代码执行过程中使用的内存,编写JavaScript程序时,所需内存的分配以及无用内存的回收完全实现自动管理。原理:找出那些
- 通过cpython把python的文件转换为二进制文件,达到代码保护的目的1、下载Cython-0.28.2.tar.gz python s
- 本文实例讲述了Python使用logging模块实现打印log到指定文件的方法。分享给大家供大家参考,具体如下:可能我们经常会使用print
- opts, args = getopt.getopt(sys.argv[1:], "t:s:h", ["wal
- php mysql PDO 查询操作的实例详解<?php $dbh = new PDO('mysql:host=localho
- 本文记录了mysql8.0.0 winx64.zip解压版安装教程,具体内容如下1、自己到mysql官网下载mysql-8.0.0-dmr-
- INSERT、DELETE、UPDATE 三种SQL语句是数据库技术的三大基本语句. 在通常的web开发中对它的处理可以说是无处不在. 如果
- 注:因为最近想用一下Python做一些简单小游戏的开发作为项目练手之用,而Pygame模块里面提供了大量的有用的方法和属性。今天我们就在之前