在Vim中,我們可以通過set fencs=utf-8,gbk告訴它按照先utf-8后gbk的順序自動識別打開文件的字符編碼。Emacs也有一組字符編碼相關指令,整理如下:
指令全名:set-buffer-file-coding-system
指令作用:改變當前buffer的編碼
調用方法:(以目標編碼gbk為例)
C-x <RET> f gbk <RET>
該指令還可以用于改變當前buffer的換行習慣(編碼參數用dos或unix,對應\r\n或\n)。
指令全名:universal-coding-system-argument
指令作用:指定緊隨其后的命令(如C-x C-f或C-x C-w等)所采用的編碼
調用方法:(以目標編碼gbk為例)
C-x <RET> c gbk <RET>
指令全名:revert-buffer-with-coding-system
指令作用:用指定編碼重讀當前buffer(如果打開時用錯了編碼)
調用方法:(以目標編碼gbk為例)
C-x <RET> r gbk <RET>
指令全名:recode-region
指令作用:將以錯誤編碼解碼的選區(qū)以指定編碼重新解碼
調用方法:(以目標編碼gbk為例)
M-x recode-region <RET> gbk <RET> utf-8 <RET>
除了這些操作外,還有一種方法,那就是在文件開始的部分給出如下形式的指令,直接告訴編輯器在打開和保存時應采用的編碼:
-*- coding: gbk -*-
接觸過Python的同學是不是覺得很眼熟?
[補充] 查看當前編碼選擇的命令為:
M-x describe-coding-system <RET> 或 C-h C <RET>
也可在回車前輸入具體的編碼名稱(如gbk)以查看詳細說明。