Грязный код, когда я открываю файл lua, содержащий китайский с MacVim - PullRequest
0 голосов
/ 14 сентября 2011

Как установить код отображения MacVim.

Вот этот беспорядок, когда я открываю файл lua, создаваемый в Windows XP.

gControlMode = 0;- 1 £ º¿ªÆôÖØÁ¦¸ÐÓ¦ £ ¬ 0: ¿ª´ ¥ ÆÁÄ £ ʽ

gState = GS_GAME;

sTotalTime = 0;--μ ± Ç ° ¹Ø¿¨ »мкА × Ue ± ¼ä

1 Ответ

0 голосов
/ 15 сентября 2011

Текст, который вы разместили, выглядит как кодировка Latin-1 (или ISO-8859-1, CP819) кодировки CP936 (или EUC ‑ CN, или GB18030 1 ) этого текста 2 :

gControlMode = 0; -- 1:开启重力感应, 0:开触屏模式

gState = GS_GAME;

sTotalTime = 0; --当前关卡花的总时间

При открытии файла Vim пробует список кодировок, указанный в опции fileencodings .Обычно latin1 является последним значением в этом списке;чтение как Latin-1 всегда будет успешным, так как это 8-битная кодировка, которая отображает все 256 значений.Таким образом, Vim открывает ваш файл в кодировке CP936 как Latin-1.

У вас есть несколько вариантов заставить Vim использовать другую кодировку:

  • Вы можете указать кодировку с помощью++enc= опция для команды Vim :edit (это заставит Vim игнорировать список fileencodings для буфера):

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

    Вы можете применить это к ужезагруженный файл, не указав путь:

    :e ++enc=cp936
    
  • Вы можете добавить предпочитаемую кодировку в fileencodings непосредственно перед latin1 (например, в ~/.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.


1 Я не знаком с кодировками, используемыми для текста на китайском языке, эти кодировки кажутсяидентичны «ожидаемому» тексту.
2 Я не читаю по-китайски, но присутствие и расположение FULLWIDTH COLON и FULLWIDTH COMMA (и перевод этого текста Google) заставляют меня думать, что этотекст, который вы ожидали.

...