windows下Emacs中文亂碼解決辦法[2013-03-07更新]

在.emacs文件中加入如下配置即可:

==================分割線 勿複製=========================

;; 編碼設置 begin
(set-language-environment 'Chinese-GB)
;; default-buffer-file-coding-system變量在emacs23.2之後已被廢棄,使用buffer-file-coding-system代替
(set-default buffer-file-coding-system 'utf-8-unix)
(set-default-coding-systems 'utf-8-unix)
(setq-default pathname-coding-system 'euc-cn)
(setq file-name-coding-system 'euc-cn)
;; 另外建議按下面的先後順序來設置中文編碼識別方式。
;; 重要提示:寫在最後一行的,實際上最優先使用; 最前面一行,反而放到最後才識別。
;; utf-16le-with-signature 相當於 Windows 下的 Unicode 編碼,這裏也可寫成
;; utf-16 (utf-16 實際上還細分爲 utf-16le, utf-16be, utf-16le-with-signature等多種)
(prefer-coding-system 'cp950)
(prefer-coding-system 'gb2312)
(prefer-coding-system 'cp936)
(prefer-coding-system 'gb18030)
;(prefer-coding-system 'utf-16le-with-signature)
(prefer-coding-system 'utf-16)
;; 新建文件使用utf-8-unix方式
;; 如果不寫下面兩句,只寫
;; (prefer-coding-system 'utf-8)
;; 這一句的話,新建文件以utf-8編碼,行末結束符平臺相關
(prefer-coding-system 'utf-8-dos)
(prefer-coding-system 'utf-8-unix)
;; 編碼設置 end

==================分割線 勿複製=========================


說明:使用此配置,新建文件會採用UTF-8(無BOM)格式編碼,行末以unix方式("\n")結尾,打開已有的文件,修改,保存還是按原有編碼方式保存。


1、查看當前buffer的編碼:M-x describe-coding-system
2、查看函數的幫助文檔 C-h f func-name
3、查看某個值 C-h v value-name


參考:

http://forum.ubuntu.org.cn/viewtopic.php?f=68&t=382841
http://stackoverflow.com/questions/1674481/how-to-configure-gnu-emacs-to-write-unix-or-dos-formatted-files-by-default
http://www.gnu.org/software/emacs/manual/html_node/emacs/Output-Coding.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章