假設在 .vimrc 裡設定了下面幾行
" vim 內部使用的編碼
set encoding=utf-8
" 在終端環境使用 vim 時使用的編碼
set termencoding=utf-8
" vim 開啟文件時根據 fileencodings 所指定的順序來猜文件的編碼
set fileencodings=ucs-bom,utf-8,sjis,prc,big5,latin1
" vim 存檔時使用的編碼
set fileencoding=utf-8
這時我們所寫的中文網頁存檔後,都會是以 utf-8 編碼所存的…….嗎?
答案是不一定….
我們可以再以 vim 打開該檔案,然後在命令列下 :set
找一個叫 fileencoding=xxxx 的設定值
如果 xxxx=utf-8 則它真的是以 utf-8 編碼所存的,
如果 xxxx=big5 則它是以 big5 編碼所存的……
這是因為 fileencodings 的設定,vim 會先從 fileencodings 所列的編碼從頭開始找,一遇到符合的就用該編碼做為接下來處理的編碼,這時我們可以再設定一次
:set fileencoding=utf-8
再次存檔後,它就會以 utf-8 存檔了
確定了網頁檔案內容的編碼後, 接下來是 browser 能不能知道該網頁是否為 utf-8 了
mozilla/firefox/iceweasel 可以演算法找出網頁是以什麼編碼所儲存的,故可正確顯示。
IE 似乎沒有類似的機制,所以我們需在網頁中加註 meta data,告訴它網頁是什麼編碼。
(meta qeuiv="Content-Language" content="zh-tw")
(meta http-equiv="Content-Type" content="text/html; charset=utf-8")
(請將 '(' 及 ')' 換成 '<' 及 '>')
萬一在加了上面兩行後,原本的中文卻變成了亂碼,那極有可能你的檔案不是以 utf-8 存檔的。
在 linux 上有 iconv ,在 windows 上有 convertz
兩者都可以用來批次轉檔案的編碼。
沒有留言:
張貼留言