从php脚本到浏览器,编码方式浅析
今天简单看了一下php,服务器,浏览器如何设定编码
1.php
在php配置文件php.ini中,可以设置字符编码
; PHP's default character set is set to empty.
; http://php.net/default-charset
default_charset = "gb2312"
在PHP 5.6及其之后,"UTF-8"是缺省值(5.6之前是空值),对于以下函数:htmlentities(), html_entity_decode() and htmlspecialchars() ,如果他们的编码参数被省略了,则default_charset的值用于这些函数的默认编码.对于 iconv函数,如果其参数input_encoding 3.output_encoding/internal_encoding等没有设置的话,也会采用default_charset的值,对于mbstring函数,如果mbstring.http_input mbstring.http_output mbstring.internal_encoding没有设置的话,也会采取default_charset的值,
另外,不推荐将default_charset设为空值.(Setting default_charset to an empty value is not recommended).
脚本的编码类型一定要和default_charset一致,否则会乱码的.
2.服务器(如apache)在返回响应头content-type时,会参照php.ini的设定,
比如:
//php.ini中
default_charset = "aaabbccc"
查看响应头:
Content-Type: text/html; charset=aaabbccc
如果php脚本中使用了header函数,则服务器的响应头会遵循header函数的设定.
3.关于相应实体中的meta设置content-type
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
它的优先级是低于响应头中规定的content-type的,也就是说响应头中规定了编码类型,则浏览器会遵循响应头的设定(一般是这样,最终决定权在浏览器手中)
4.浏览器编码设定
对比了一下chrome,ff,360浏览器,ie8,发现chrome浏览器好像无视用户的手动设定,具体机制不明白,而其他浏览器,只要用户更改了编码,则会按用户指定编码去解码
从php脚本到浏览器,编码方式浅析的更多相关文章
- 刨根究底字符编码之十一——UTF-8编码方式与字节序标记
UTF-8编码方式与字节序标记 一.UTF-8编码方式 1. 接下来将分别介绍Unicode字符集的三种编码方式:UTF-8.UTF-16.UTF-32.这里先介绍应用最为广泛的UTF-8. 为满足基 ...
- WEB前端 [编码] 规则浅析
前言 说到前端安全问题,首先想到的无疑是XSS(Cross Site Scripting,即跨站脚本),其主要发生在目标网站中目标用户的浏览器层面上,当用户浏览器渲染整个HTML文档的过程中出现了不被 ...
- Oracle EBS在编码方式为AL32UTF8时的注意事项
现如今的EBS系统中,为了推进国际化的进程,以及系统向全球化的扩展,在Oracle数据库的编码方式上渐渐从支持中国本土简体中文的ZHS16GBK转向了更趋于国际化的AL32UTF8编码方式.但随之而来 ...
- C# HttpWebRequest提交数据方式浅析
C# HttpWebRequest提交数据方式学习之前我们先来看看什么是HttpWebRequest,它是 .net 基类库中的一个类,在命名空间 System.Net 下面,用来使用户通过HTTP协 ...
- 修改Tomcat编码方式的两种方法
转自:http://blog.sina.com.cn/s/blog_7c76d63901018lyt.html 方法一:推荐,不会影响到其它项目 见我的另一篇博客:http://www.cnblog ...
- Learning Lua Programming (3) iMac下搭建Lua脚本最好的编码环境(代码补全,编译运行)
这篇文章参考自http://blog.sina.com.cn/s/blog_991afe570101rdgf.html,十分感谢原作者的伟大创造,本人亲测可行. 这篇文章记录一下如何在MAC系统环境下 ...
- java中的字符编码方式
1. 问题由来 面试的时候被问到了各种编码方式的区别,结果一脸懵逼,这个地方集中学习一下. 2. 几种字符编码的方式 1. ASCII码 我们知道,在计算机内部,所有的信息最终都表示为一个二进制的字符 ...
- python批量修改文件内容及文件编码方式的处理
最近公司在做tfs迁移,后面要用新的ip地址去访问tfs 拉取代码 ,所以原来发布脚本中.bat类型的脚本中的的ip地址需要更换 简单说下我们发布脚本层级目录 :每个服务站点下都会有一个发布脚本 . ...
- python笔记二(数据类型和变量、编码方式、字符串的编码、字符串的格式化)
一.数据类型 python可以直接处理的数据类型有:整数.浮点数.字符串.布尔值.空值. 整数 浮点数 字符串:双引号内嵌套单引号,可以输出 i'm ok. 也可以用\来实现,\n 换行 \t tab ...
随机推荐
- SpringMVC学习系列-后记 开启项目的OpenSessionInView
在系列的 SpringMVC学习系列(12) 完结篇 的示例项目中,由于当时考虑到OpenSessionInView会对性能有一定的影响,所以就没有配置项目的OpenSessionInView.在ma ...
- IIS-Server is too busy _解决方法
httpRuntime Server Too Busy 修改方法:修改服务器.net配置“machine.config"文件,该文件位于Windows系统目录下,如“C:\WINDOWS \Micro ...
- 【支付专区】之对字符串数据进行Base64位加密,解密
加密,解密 String pwd="测试"; byte[] bytes = pwd.getBytes("UTF-8"); //加密 String pwdNew= ...
- 黄聪:Wordpress二级域名共享用户cookie出现错误解决方案及WP的Cookie机制
在若干年以前,我刚开始折腾Wordpress没多久的时候,就自己摸索过 多个Wordpress网站共享一份数据表的实现方法 .这种看起来好像很高大上的类SSO功能,能够给用户在多个网站之间提供快速.无 ...
- bootstrap-列表组
<div class="container"> <!-- list-group 列表组 给ul添加 list-group-item 列表项 给li添加 --> ...
- 注册页面JS前台校验
运行效果图: HTML代码: <script> function checkForm(){ //校验用户名 //获得用户名文本框的值 var username=document.getEl ...
- EL简介
一.EL简介 1.语法结构 ${expression}2.[]与.运算符 EL 提供.和[]两种运算符来存取数据. 当要存取的属性名称中包含一些特殊字符,如.或?等并非字母或数字的符 ...
- 如何利用tomcat和cas实现单点登录(1):配置tomcat的ssl和部署cas
如何利用tomcat和cas实现单点登录,借鉴了网上的很多教程,主要分为以下几个步骤: 一:下载好cas,tomcat之后,首先配置tomcat: 用鼠标右键点击"计算机"→选择& ...
- OLAT & OLTP
联机事务处理(OLTP)和联机分析处理(OLAP)的不同,主要通过以下五点区分开来. 用户和系统的面向性: OLTP是面向顾客的,用于事务和查询处理 OLAP是面向市场的,用于数据分析 数据内容: O ...
- 简单实用的Windows命令(一)
前几天新买了一台笔记本电脑,使用了一下几个简单的查看电脑配置的命令,觉得非常的不错,在此记录一下 一:运行命令的方式有两种 1:使用快捷键WIN+R,然后在弹出的“运行”对话框中输入对应的命令 2:在 ...