首頁 >後端開發 >php教程 >小談Vim開啟檔案開頭的

小談Vim開啟檔案開頭的

WBOY
WBOY原創
2016-08-08 09:19:371255瀏覽

       在本地Windows機上開發的PHP程式上傳到linux伺服器上後,透過瀏覽器存取相應接口,發現返回的資料前多了一個莫名的字元‘-’,甚為不解。之後透過網路抓包的方式,查看到介面回傳資料前多了 EF BB BF。出現瞭如此令人不知所以然的bug總是極度讓人抓狂。經過了幾番嘗試之後,仍然無法解決,但也隱隱感覺得可能是字符編碼的問題,遂用PHPStorm新建了一個文件,然後重新將之前出bug的文件內容重寫了一遍(慶幸文件不是太大,用svn的話,應將檔案回滾到之前沒有bug的版本),然後重新上傳,問題居然解決了。喜悅中就此作罷,並沒有深究其中的緣由。

       原本以為bug就此解除,結果之後又碰到了一次,實在不能忍。這次查看程式碼並不是採用在本機上改然後重新上傳伺服器的方式,而是直接在伺服器上用vim打開逐行查看。結果驚喜出現了,vim的文件頭顯示多了‘’字符,直覺告訴自己這就是罪魁禍首。於是進一步探究了字符。

       這裡首先說一下utf8、utf16、utf32編碼,因為這種編碼對應多個字節,所以一般utf16和utf32會用BOM(Byte Order節序(Big/Litttle Endian),而utf8加不加BOM都可以。一般我們用的編輯器utf8編碼是沒有加BOM標識的,但是windows下的記事本卻會將utf8編碼的文件前加上BOM標識。而這個BOM標識就是對應著linux環境下vim開啟後出現的字元。 字元會出現在的前面,PHP對這樣的檔案進行解析時,會將這個字元輸出,從而導致了上述的bug。

       PS:還是少用記事本開啟或編輯utf8編碼的代碼,血的教訓啊! ! !

版權聲明:本文為部落客原創文章,未經部落客允許不得轉載。

以上就介紹了小談Vim開啟檔案開頭的,包含了方面的內容,希望對PHP教學有興趣的朋友有幫助。

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn