2011-09-14 85 views
0

如何設置MacVim顯示代碼。亂碼當我打開一個lua文件包含中文與MacVim

當我打開在Windows XP中創建的lua文件時,這是一團糟。

gControlMode = 0; - 1££º¿ªÆôÖØÁ|¸ÐÓ|¬0:¿ª'¥ÆÁģʽ

gState = GS_GAME;

sTotalTime = 0; --μ±Ç°¹Ø¨¨μÄ×Üʱää

回答

0

您發佈的文本看起來像是對CP936編碼(或EUC-CN)的Latin-1(或ISO-8859-1,CP819) ,本文的或GB18030編碼):

gControlMode = 0; -- 1:開啓重力感應, 0:開觸屏模式 

gState = GS_GAME; 

sTotalTime = 0; --當前關卡花的總時間 

當打開一個文件,Vim試圖在fileencodings option指定編碼列表。通常,latin1是此列表中的最後一個值;因爲它是映射所有256個值的8位編碼,因此讀取爲Latin-1將始終成功。因此,Vim打開你的CP936編碼文件爲Latin-1。

您有幾種選擇讓Vim來使用另一種編碼:

  • 您可以指定與++enc= option到Vim的:edit命令編碼(這將使得Vim忽略fileencodings列表緩衝區):

    :e ++enc=cp936 /path/to/file 
    

    您可以通過不使用的路徑將此到一個已經加載的文件:

    :e ++enc=cp936 
    
  • 您只需latin1之前添加您的首選編碼fileencodings(例如在~/.vimrc):

    let &fileencodings = substitute(&fileencodings, 'latin1', 'cp936,\0', '') 
    
  • 您可以設置encoding選擇到所需的編碼。這通常是不受歡迎的,因爲它具有廣泛的影響(請參閱:help encoding)。


這可能是有意義的,如果可能的話,將文件轉換爲UTF-8,因爲許多編輯器將正常自動檢測UTF-8。一旦你有了正確加載的文件(見上文),Vim可以做這樣的轉換(設置fileencoding,然後:write):

:set fenc=utf-8 | w 

Vim應該差不多自動處理讀取和寫入UTF-8文件(encoding默認UTF-8和utf-8默認爲fileencodings),但如果您使用的是其他編輯器(即無論Windows編輯器編輯/創建CP936文件),您可能需要將它們配置爲使用UTF-8而不是(例如)CP936。


我不熟悉使用中國文字的編碼,這些編碼似乎是在「期待」的文字相同。
我不讀中文,但是FULLWIDTH COLON和FULLWIDTH COMMA的出現和位置(以及谷歌翻譯的這段文字)讓我覺得這是你期望的文字。

相關問題