Кодування за замовчуванням виглядає так latin1
:
:set encoding?
encoding=latin1
Вводячи символи, Vim намагається перетворити їх з вхідного набору символів (можливо, Unicode) в латинське-1. Це не вдається, оскільки на латині-1 немає цих символів. Звідси знаки запитання.
Відкриття наявного файлу (збереженого за допомогою блокнота чи якоїсь іншої програми) повинно призвести до уникнення тексту, оскільки зараз Vim просто намагається читати байти та інтерпретувати їх відповідно до набору символів латині-1, а не конвертувати їх у набір latin-1.
Ви хочете використовувати utf-8
або щось таке:
:set encoding=utf-8
Після цього сценарій малаялам, здається, працює.
Зауважте, що це не призведе до роботи попередніх знаків запитання. Вони дійсно є перетворені в знаки питання (символи 0x3f
) на вході. Немає можливості повернути те, що було введено. Я підозрюю, що це джерело плутанини цього питання.
Також див :help 'encoding'
.
Як сторонне позначення, непідтримувані гліфи у шрифті зазвичай надаються з чітким гліфом; це залежить від шрифту, але зазвичай це квадратний блок або інший стильовий знак питання. ви можете побачити різницю між "реальним" знаком питання та непідтримуваним гліфом g8
, який покаже код символу.