PHP、MySQL、浏览器编码不统一的情况下如何保证正常解析?

最理想的情况是,把三者编码都统一成gbk或者utf-8,这样解析就一切正常。但如何不统一呢?

比如:

——PHP的编码是utf-8

——MySQL的编码是utf-8

——浏览器的编码是gbk

这时,只要考虑PHP和浏览器之间即可,因为PHP和MySQL的编码是一致的,可以不考虑。而如何告诉浏览器,PHP返回给浏览器的东西是用utf-8,请用utf-8解析?

答案:

(1)方法之一就是我们在PHP中用的那个header函数。header("Content-type:text/html;charset=utf-8");

(2)方法之二就是我们在html代码的meta标签中设置的。<meta http-equiv="content-type" conetnt="text/html;charset=utf-8">

而如果,PHP和MySQL之间的编码也不统一,怎么互相告诉对方自己的编码呢?

答案:

(1)方法之一就是在MySQL中修改MySQL服务器接受PHP以及返回给PHP数据时的编码,set character_set_client=utf8;是告诉MySQL服务器当前PHP发过来的是utf8编码。set character_set_result=utf8;是告诉MySQL服务器当前PHP只能接受utf8的东西。

(2)方法之二是一种简化的写法。就是直接在PHP代码中设置set names utf8;表示我PHP只发送和接受utf8编码的东西。属于上面方法一的简化。

时间: 2024-10-29 21:06:23

PHP、MySQL、浏览器编码不统一的情况下如何保证正常解析?的相关文章

破解windows下MySQL服务启动不了的情况下不能对其进行完全卸载的解决方案

以下的文章主要介绍的是在MySQL服务启动不了的情况下,不能对其进行完全卸载的实际解决办法的描述,以下就是对解决MySQL服务启动不了的情况下具体方案的描述,希望在你今后的学习中会对你有所帮助. MySQL 5.1 安装过程中报apply security setting错误的解决办法 1, 卸载MySQL 2, 删除目录 C:\Documents and Settings\All Users\Application Data\MySQL 3, 重新安装MySQL 就 OK 啦 [MySQL]

破解windows下MySQL服务启动不了的情况下不能对其进行全然卸载的解决方式

下面的文章主要介绍的是在MySQL服务启动不了的情况下,不能对其进行全然卸载的实际解决的方法的描写叙述,下面就是对解决MySQL服务启动不了的情况下详细方案的描写叙述,希望在你今后的学习中会对你有所帮助. MySQL 5.1 安装过程中报apply security setting错误的解决的方法 1, 卸载MySQL 2, 删除文件夹 C:\Documents and Settings\All Users\Application Data\MySQL 3, 又一次安装MySQL 就 OK 啦

关于ubuntu16.04中mysql root登陆不了的情况下(大多是未设置密码的情况)

1.先将当前用户改成 root用户:sudo su 2.进入安装路径,我的是:cd /etc/mysql/ 3.打开debian.cnf : gedit debian.cnf 4.找到:user password 就是登陆的账号密码了 5.登陆 mysql :mysql -u 用户名 -p 密码 6.然后进入mysql 表: use mysql; 7.执行修改root密码命令:UPDATE user SET authentication_string= password ('123') WHER

阿里Java面试题剖析:在高并发的情况下如何保证消息的顺序性?

面试原题 如何保证消息的顺序性? 面试官心理分析 其实这个也是用 MQ 的时候必问的话题,第一看看你了不了解顺序这个事儿?第二看看你有没有办法保证消息是有顺序的?这是生产系统中常见的问题. 面试题剖析 我举个例子,我们以前做过一个 mysql binlog 同步的系统,压力还是非常大的,日同步数据要达到上亿,就是说数据从一个 mysql 库原封不动地同步到另一个 mysql 库里面去(mysql -> mysql).常见的一点在于说比如大数据 team,就需要同步一个 mysql 库过来,对公司

PHP和MYSQL的编码问题

http://blog.csdn.net/martinkro/article/details/5352474 1 MYSQL中的字符集概念  Mysql的字符集里有两个概念,一个是"Character set(字符集)",另一个是"Collations".1.1 Collations  Collations翻成中文是"校验",在网页开发的过程中,这个词汇,只在Mysql里使用,主要作用是指导Mysql对字符的比较,比如, ASCII字符集里,Co

浏览器是怎样工作的:渲染引擎,HTML解析

渲染引擎 渲染引擎的职责是……渲染,也就是把请求的内容显示到浏览器屏幕上. 默认情况下渲染引擎可以显示HTML,XML文档以及图片. 通过插件(浏览器扩展)它可以显示其它类型文档.比如使用PDF viewer插件显示PDF文件.我们会在一个专门的章节讨论插件与扩展.在这一节我们将专注渲染引擎的主要用途——显示用CSS格式化的HTML与图片. 各种渲染引擎 我们提到的Firefox, Safari两种浏览器构建于两种渲染引擎之上:Firefox使用Gecko —— Mozilla自家的渲染引擎:S

紧急情况下压缩了测试周期应该怎么办?

提问:紧急情况下压缩了测试周期应该怎么办? 回答:本期话题分几个要素点,我将根据命题划分的几个关键词:紧急情况,压缩,测试周期,来一起分析探讨. 项目中难免会碰到很多“紧急情况”,如: 1.需求变更 客户是善变的,我们必须伺候好客户,不是么?没有任何理由,他们要变更需求,一般情况下,最为乙方.丙方只有服从. 2.项目外包 很少有人碰到过吧?不过的确存在!项目进行到一半时由于自身团队或者高层决策.成本等方面上的要求,直接将项目外包出去,或者重新让一个项目团队接手. 3.开发设计架构存在明显严重缺陷

关于遍历javascript 中的json串浏览器输出的结果不统一的情况

我们在做项目的时候经常会用到javascript的json. 首先说一下javascript的json串是什么,json串属于javascript的一个对象,有键和值对应的对象. 一般的格式是: a = { a1 : 1, a2 : 'abc', a3 : 'abc', a4 : [1,2,3], a5 : function(){console.log(12)} }; 我们读取这个json 的方法是通过for in 循环来遍历: 使用json串的好处是可以事先把数据库中的数据一次性的读取出来存成

QString内部仍采用UTF-16存储数据且不会改变(一共9种不同情况下的编码)

出处:https://blog.qt.io/cn/2012/05/16/source-code-must-be-utf-8-and-qstring-wants-it/ 但是注意,这只是QT运行(RunTime)过程中采用的编码,并不代表源码文件里也是这样的.恰恰相反,源码文件必须是UTF8,带不带BOM都可以.我认为,虽然存储在源代码里的中文字是UTF8,但是QT在编译过程中,遇到中文会立即转换成UTF-16从而对源码里的中文字符进行编码,并存储在EXE文件里(这里对编译器来说,都是静态字符,必