php文件怎么制定编码格式,php文件编码格式对结果有影响

最近弄个小网站,发现windows下的文件上传到linux服务器上后,出现了标签错乱的问题。

比如,我的代码是:

print '

testtest';

但是,浏览器的解析格式缺成了下面的样子:

test

test

进过不停地搜索,发现了问题所在:

由于为了在linux服务器上正常显示中文,将一些包含中文字符串的页面文件编码转成了utf8格式(貌似其实不用转,也可以显示的),导致了下面的问题:

页面采用UTF8编码,头部和尾部用了模板包含文档的method,结果头部和尾部无端端各多出一个约10px的空行,什么也没有。

原因是全部采用utf8编码,包含文档的时候,最后的二进制流中包含了多次UTF8 BOM标记,IE不能正常解析包含多个UTF8 BOM 标记的页面,直接替换成实际显示的回车,这样导致一个空行,而firefox却没有这个问题。

故如果模板采用包含的method包含多个utf8文档需要用ultraedit保存时另存为功能 选择utf8 无bom格式保存即可。

另外,如果中文页面在html head标记中将title标记放在前面会导致页面空白。

所以utf8页面应该使用标准顺序:

BOM头:\xEF\xBB\xBF,PHP脚本4、5尚对BOM无视,所以在解析前直接输出。

对此 w3.org 标准 FAQ 中对此问题有一个专门的描述:

具体如下:

在UCS 编码中有一个叫做”ZERO WIDTH NO-BREAK SPACE”的char,它的编码是FEFF。而FFFE在UCS中是不存在的char,所以不应该出现在实际传输中。UCS规范建议我们在传输字节流 前,先传输 char”ZERO WIDTH NO-BREAK SPACE”。这样如果接收者收到FEFF,就表明这个字节流是Big-Endian的;如果收到FFFE,就表明这个字节流是Little- Endian的。因此char”ZERO WIDTH NO-BREAK SPACE”又被称作BOM。

UTF-8不需要BOM来表明字节顺序,但可以用BOM来表明编码方式。char”ZERO WIDTH NO-BREAK SPACE”的UTF-8编码是EF BB BF。所以如果接收者收到以EF BB BF开头的字节流,就知道这是UTF-8编码了。

Windows就是使用BOM来标记文本文档的编码方式的操作Systam: WindowsXP Professional , 缺省char集:中文

1) notepad : 可以自动识别出没有带 bom 的 utf-8 编码格式文档,但不可以控制保存文档时是否添加 bom , 如果保存文档,那么会统一添加 bom 。

2)editplus : 不能自动识别出没有 bom 的 utf-8 编码格式文档,文档保存时,选择UTF-8 格式,不会在文档头写上 BOM header.

3) UltraEdit : 对于char编码的功能最为强大, 可以自动识别带 bom 和不带 bom 的 utf-8 文档 (可以配置) ; 保存的时候可以通过配置选择是否添加 bom.

(特别需要注意的是,保存一个新建立的文档时,需要选择另存为 utf-8 no bom 格式)

后来发现 Notepad++ 也对于 utf-8 bom 支持比较好,推荐大家使用。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/396899.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【链表】Add Two Numbers

题目: You are given two linked lists representing two non-negative numbers. The digits are stored in reverse order and each of their nodes contain a single digit. Add the two numbers and return it as a linked list. Input: (2 -> 4 -> 3) (5…

我们为何要使用多线程,它有什么优点?

其实在平时的开发中,很多程序员都不会去写线程,为啥?因为麻烦,其次是用到的地方并不多,除非逼不得已,大家都不会去写,毕竟写一天代码,拿一天工资,是吧? 麻烦归…

ecs服务器数据迁移_如何非常方便地从Windows文件服务器把数据完整地迁移到ONTAP Select...

这是一个续篇,如果你依然爱你的Windows文件服务器或者使用Windows文件服务没有任何问题的话,请忽略我。续自:从Windows文件服务器,到ONTAP Select软件定义存储感谢联想凌拓合作伙伴新锐英诚的帮助,我们成功地做到了从海…

yum第三方安装-软件包没签名及更新错误

yum安装时 后面加 --nogpgcheck 阿里云源文件:http://mirrors.aliyun.com/repo/Centos-7.repo epel repo源:http://mirrors.aliyun.com/repo/epel-7.repo yum update 错误提示 Error: initscripts conflicts with centos-release-7-4.1708.el7.centos.x8…

oracle触发和存储过程,Oracle存储过程与触发器

Oracle存储过程与触发器存储过程存储过程最直接的理解:就是保存了批量的sql(select,insert,if for),以后可以通过一个名字把这些批量的sql执行,使用存储过程在大批量数据查询或计算时会带来高性能,存储过程编写和调试比较复杂&…

(hdu 简单题 128道)平方和与立方和(求一个区间的立方和和平方和)

题目:平方和与立方和Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 108212 Accepted Submission(s): 34915Problem Description给定一段连续的整数。求出他们中全部偶数的平方和以及全部奇数的立方…

企业高可用切换的说明

企业的应用场景,基本上都离不开高可用,不管是windows下自带的集群软件,或者是Linux下的heartbeat,keepalived等,AIX下的hacmp等。-----------------------------引用老男孩老师对高可用切换的说明--------------------…

swift int转string_Swift集合类型协议浅析(下)

关注【搜狐技术产品】公众号,第一时间获取技术干货导读本篇是Swift集合类型协议浅析系列文章的下篇,在这篇文章中,我们将继续围绕集合类型协议展开讨论,侧重点更多地关注于String相关的周边协议。StringProtocol代表一个字符串&am…

50 jQuery绑定事件 阻止默认事件发生 内置动画 each data

主要内容 1 阻止后续事件继续执行 return false: 常用于表单提交 event.preventDefault : 阻止默认事件发生 <body> <form action""><input type"text" id"t1"><input type"submit" class"s1" id&qu…

oracle视图执行脚本,Sh脚本中查询Oracle v$视图时需要在$号前加转义符“\”

DBA经常会部署一些sh脚本登陆Oracle数据库查询v$动态视图得到一些东西来实际管理自动化的目的&#xff0c;但在sh脚本中写ORACLE SQL语句时&#xff0c;如果语句查询v$视图&#xff0c;直接写v$XXXX是不能成功的&#xff0c;shell会将$当成一个参数来处理。以下面一段简单的sh脚…

Linux下实现视频读取(二)---camera參数设定

Camera的可设置项极多&#xff0c;V4L2 支持了不少。但Sam之前对这些设置的使用方法和涵义都是在看videodev2.h中边看边理解。感觉很生涩。直到写这篇blog时&#xff0c;才发现v4l2有专门的SPEC来说明&#xff1a; http://www.linuxtv.org/downloads/legacy/video4linux/API/V4…

微信小程序页面跳转与返回并回传数据

2019独角兽企业重金招聘Python工程师标准>>> A页面&#xff1a; .wxml文件 <view class"flex-wrp"><text style"width: 32%;">选择城市</text><input style"width: 68%;" type"text" bindtap"ci…

地址栏 输入 参数 刷新参数丢失_小米11 Pro屏幕参数曝光:2K屏幕+120Hz刷新率

本周一&#xff0c;高通已经宣布将于12月初举行的骁龙技术峰会上正式发布新一代旗舰处理器——骁龙875。根据此前的曝光消息&#xff0c;小米11系列将首发搭载这颗芯片&#xff0c;网上也已经开始对这款新机进行曝光。日前&#xff0c;海外知名论坛XDA在MIUI 12的代码中发现了一…

Cypress EZ-USB FX3 DMA模式下的串口通讯

由于公司设备升级后出了问题&#xff0c;需要对USB驱动进行修改&#xff0c;原本使用的是寄存器模式进行UART传输&#xff0c;但是由于FX3寄存器模式会出现长时间延时等待的问题&#xff0c;不得不对其传输模式进行修改。虽然赛普拉斯的EZ-USB FX3系列芯片功能强大&#xff0c;…

php如何写一个能让外部访问的接口,如何写一个接口供外界访问

在工作的时候经常调用别人的接口&#xff0c;获取数据&#xff0c;然后就想知道这中间的原理是什么呢&#xff1f;今天上一个自己写的一个测试例子&#xff1a;首先是自己远程写好的一个接口&#xff1a;public function testming(){$arrarray(first > 1,hospitalname > …

win10远程桌面连接

有的情况下&#xff0c;Win10设置了允许远程桌面连接后&#xff0c;远程主机仍然不能桌面连接到目标主机上&#xff0c;这时可以在目标主机上尝试如下修改&#xff1a; 开始-->运行->gpedit.msc->计算机配置->Windows设置->安全设置->本地策略->安全选项-…

10494,没过,待解决,大数除法

10494,没过,待解决,大数除法 import java.io.*; import java.util.*;public class Main {public static void main(String[] args) throws FileNotFoundException{// Scanner scanner new Scanner(new File("d://1.txt"));Scanner scanner new Scanner(System.in);…

springboot md5加密_实在!基于Springboot和WebScoket,写了一个在线聊天小程序

基于Springboot和WebScoket写的一个在线聊天小程序(好几天没有写东西了&#xff0c;也没有去练手了&#xff0c;就看了看这个。。。)项目说明此项目为一个聊天的小demo&#xff0c;采用springbootwebsocketvue开发。其中有一个接口为添加好友接口&#xff0c;添加好友会判断是否…

suse 启动oracle11g,SuSe10下Oracle11g文件系统模式安装及配置、网络配置与连接

SuSe10下Oracle11g文件系统模式安装及配置、网络配置与连接概述本课程主要讲解oracle数据库软件的安装及配置&#xff0c;以及数据库的创建过程和网络配置与连接等&#xff1b;同时讲解一些数据库安装过程中的常见问题解决办法。注意&#xff1a;本文当中引用的package_name均为…

Python pyenv

一、简介 一般在操作系统中我们会安装多个Python版本&#xff0c;所以在进行Python版本切换时会比较麻烦&#xff0c;pyenv就提供了一种简单的方式&#xff0c;能简易地在多个Python版本中进行切换的工具&#xff0c;它简单而优雅。pyenv有以下功能&#xff1a; 1&#xff09;进…