這裡介紹如何設定 Vim 編輯器使用 UTF8 編碼,解決中文字出現亂碼的問題。
現在許多的文字資料都會以萬國碼(Unicode)的方式來編碼,尤其是在包含中文的文字檔時,UTF8 是最常見的編碼格式,而在使用 Vim 開啟這類的文字檔案時,如果預設的編碼不是 UTF8,中文的部分就會跑出亂碼,以下教大家如何設定 Vim 來解決這個問題。
就我個人而言,都是習慣使用 Vim 來寫程式,偶而會在程式碼中放一些中文註解,Vim 沒有設定好編碼的話,就會像這樣出現一堆亂碼。
這時候可以更改 encoding
這個設定,它可用來指定 Vim 內部對於文字編碼方式:
set encoding=utf8
另外 fileencoding
是用來設定特定檔案的編碼,使用 setglobal
可以設定它的預設值。
setglobal fileencoding=utf-8
fileencoding
若設定為空字串則表示跟 encoding
所指定的編碼方式相同。
如果要立即更改 Vim 的設定,可直接使用在指令列命令模式(command-line mode)設定 fileencoding
:
通常這樣應該就可以正常顯示中文了。
如果要讓 Vim 自動可以處理這個問題,可以將這段程式碼貼進 vimrc
檔案中:
if has("multi_byte") if &termencoding == "" let &termencoding = &encoding endif set encoding=utf-8 setglobal fileencoding=utf-8 "setglobal bomb set fileencodings=ucs-bom,utf-8,latin1 endif
這樣以後使用 Vim 編輯中文的文字,就不會有亂碼了。
參考資料:wikia
mm
高手您好
我最近剛從 windows十幾年折磨脫離到 linux
linux mint 19 用得蠻開心的, 不排斥自學與問題排除,不過還真不容易
(一開始連中文輸入都搞了半天)
您的網站讓我解決了很多問題 真心感謝
唯一一個的亂碼問題,不知道有沒有比較一勞永逸的方法?
(我 language support 裡該裝語言的都裝了)
工作原因需要中文日文英文, 預設界面理想為英文
舊檔案裡檔名倒還其次 (大部分正常顯示)
文字檔裡全部都變為磚塊碼
我有查到 iconv 等轉碼指令,但若同一檔案中同時有中文日文?
二為 windows 裡的一些小遊戲程式等,
用 wine 等方法成功執行了之後,
視窗界面上都還是磚塊的問題
真心感謝!!
G. T. Wang
文字編碼問題大概沒有什麼一勞永逸的方法,原則上就是猜猜看原本的編碼是什麼,然後想辦法用 iconv 轉成 UTF-8,中日文夾雜的文字有可能是 Big5 編碼,您可以試試看。
但若是遇到自己造字的文字,iconv 也是轉不出來,大概只能手動修,或是寫程式修。
遊戲裡面的文字大概也是這種狀況,不過那個牽涉到 wine 與遊戲程式本身,又更複雜,我自己是盡量避免這種使用方式。