在本地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開啟後出現的
PS:還是少用記事本開啟或編輯utf8編碼的代碼,血的教訓啊! ! !
版權聲明:本文為部落客原創文章,未經部落客允許不得轉載。
以上就介紹了小談Vim開啟檔案開頭的