您好,欢迎访问一九零五行业门户网

求分析这个神奇的字符是什么?

我写php时,先输出一段html再include()一个文件(内无输出),再继续输出一段html,那么在最终输出的html内include部分会出现一个奇怪的东西,从而导致网页异常。经我分析,是不知怎么出现了这个一个字符,求分析这是什么字符。
文件下载链接神奇字符(用notepad++打开能看到).txt 用记事本打开是看不到那个字符的,用notepad++就能看到。
回复内容:1,hex编辑器
打开为ef bb bf ef bb bf
2,打开google一搜就知道了.
该内容为utf-8的bom,也就是表明本文件采用的字节顺序是什么.多字节编码需要说明自己的顺序,来防止歧义.bom就是这个作用.不过,utf-8其实是不需要字节顺序说明的.(具体参考utf-8编码).所有utf-8的bom其实是可有可无的.有也符合标准,没有也可以解析出来.不过这也就导致了各种分歧.如果其他编辑器,错误的认为是其他编码格式,那么也可以强制解析出来,出来的就是各种乱码.3,结合你的问题,就很简单了,这个是php的输出,总是带bom的缘故.
php我没有用过,不过也有讨论如何去掉bom输出.自己看下吧.
api - how to remove %ef%bb%bf in php string
----
这个问题,已经有比较靠谱的回答了.
我就是顺手下载下来了,既然看了,也就是写下来吧.
----
神奇是个非常讨厌的字眼,
它说明你不会分析问题,对待问题根本就不知道怎么着手处理.更不能顺藤摸瓜定位问题,何用妄谈解决问题呢.
(以上不是说提问人,只是结合自己身边的事情感慨一把)
放弃神奇这种字眼吧,碰到问题也不要没头苍蝇式的瞎碰.或者随便改来改去,梦想程序突然就神奇的正常了.要学会定位问题,分析问题,解决问题.bom: byte order mark
utf-8 bom又叫utf-8 签名,其实utf-8 的bom对uft-8没有作用,是为了支援utf-16,utf-32才加上的bom,bom签名的意思就是告诉编辑器当前文件采用何种编码,方便编辑器识别,但是bom虽然在编辑器中不显示,但是会产生输出,就像多了一个空行如果文件不多,或者只是新建文件导致的原因,重新保存一次,保存的时候选择utf-8 no bom,或者不是utf-8 with bom的那个,有些编辑器是在“设置”里面设置保存是否带bom头。utf-8我下了你这个文件,打开( os x, textmate 2 )看到的是
unicode character 'zero width no-break space' (u+feff)
我搜索了一下,在维基上看到了这个
utf-16的編碼模式
utf-16的大尾序和小尾序儲存形式都在用。一般來說,以macintosh製作或儲存的文字使用大尾序格式,以microsoft或linux製作或儲存的文字使用小尾序格式。
為了弄清楚utf-16文件的大小尾序,在utf-16文件的開首,都會放置一個u+feff字符作為byte order mark(utf-16le以ff fe代表,utf-16be以fe ff代表),以顯示這個文字檔案是以utf-16編碼,其中u+feff字符在unicode中代表的意義是zero width no-break space,顧名思義,它是個沒有寬度也沒有斷字的空白。
总之,剩下的你自己搜索吧。
其它类似信息

推荐信息