Я хочу печатать на разных языках, используя (g) Vim. Но когда я переключаюсь на другой язык с помощью языковой панели (символы деванагари или хинди) и набираю что-нибудь, (g) отображается vim ??? ??
.
Что я пробовал:
write ++enc=utf-8 foo.txt
set fileencoding=utf-8
set enc=utf-8
Информация:
- Версия GVim: 7.4, а также его + multi_byte.
- Без изменений в файле vimrc по умолчанию.
Я только начал с (g) vim.
microsoft-windows
unicode
MSInfo
источник
источник
Ответы:
Кодировка по умолчанию выглядит так
latin1
:При вводе символов Vim пытается преобразовать их из входящего набора символов (возможно, в Unicode) в латиницу-1. Это терпит неудачу, так как латинский-1 не имеет этих символов. Отсюда и вопросительные знаки.
Открытие существующего файла (сохраненного с помощью блокнота или другой программы) должно привести к искаженному тексту, поскольку теперь Vim просто пытается прочитать байты и интерпретировать их в соответствии с набором символов latin-1, а не преобразовывать их в набор символов latin-1.
Вы хотите использовать
utf-8
или некоторые такие:После чего сценарий малаялам, кажется, работает.
Обратите внимание, что это не заставит работать уже существующие вопросительные знаки. Они действительно являются преобразованы в вопросительные знаки (символы
0x3f
) на входе. Там нет никакого способа вернуть то, что было введено. Я подозреваю, что это является источником путаницы в этом вопросе.Также см
:help 'encoding'
.Как примечание, неподдерживаемые глифы в шрифте обычно отображаются с отличным глифом; это зависит от шрифта, но обычно это квадратный блок или другой стиль вопросительного знака. Вы можете увидеть разницу между «реальным» вопросительным знаком и неподдерживаемым глифом
g8
, который покажет код символа.источник