Сначала проверяем кодировку
Справа внизу в строке состояния Notepad++ показывает, как сейчас читает файл: UTF-8, UTF-8-BOM или ANSI. На русской Windows ANSI — это Windows-1251. В меню кодировок (Encoding) два вида пунктов, которые часто путают:
- ANSI, UTF-8, UTF-8-BOM (верх меню): Notepad++ заново читает те же байты и файл не меняет. Это только настройка отображения.
- Convert to ANSI, Convert to UTF-8 … (низ меню): Notepad++ записывает символы в новой кодировке. После сохранения файл изменится.
Случай 1: Привет вместо «Привет»
Файл сохранён в UTF-8, а Notepad++ читает его как ANSI. Выберите в меню кодировок UTF-8, и буквы сразу станут правильными. Не конвертируйте: «Convert to UTF-8» сохранит мусор Привет как настоящие символы.
Случай 2: xCF или квадратики вместо «П»
Файл сохранён в ANSI (Windows-1251), а прочитан как UTF-8. Сначала выберите ANSI (на русской Windows это Windows-1251), чтобы буквы стали правильными, затем Convert to UTF-8. После сохранения файл будет в UTF-8. Если буквы всё равно неправильные, возможно, файл в KOI8-R или CP866. Эти кодировки есть в подменю кириллицы (Cyrillic).
Случай 3: мусор уже записан в файл
Если при выбранной кодировке UTF-8 Notepad++ всё равно показывает Привет, испорченный текст уже сохранён. Тогда ни один пункт меню не поможет надёжно, особенно если правильные и испорченные строки перемешаны. Перетащите файл в Mojibuster выше: он исправит только испорченные места и покажет каждое изменение.
До
Проверка перевода: Щербаков, Ёжиков, съёмка, жёлтый, Ярославль — всё верно.
После
Проверка перевода: Щербаков, Ёжиков, съёмка, жёлтый, Ярославль — всё верно.
Новые файлы всегда в UTF-8
В Settings → Preferences → New Document задайте для новых файлов кодировку UTF-8. Для файлов, которые будет открывать Excel, лучше UTF-8-BOM, подробнее в статье кракозябры в Excel. Скриптам для Windows PowerShell 5.1 тоже нужен BOM, см. PowerShell. Если нужна только Windows-1251, прочитайте про перекодировку в UTF-8.
Частые вопросы
Чем отличаются UTF-8 и UTF-8-BOM?
Символы хранятся одинаково. UTF-8-BOM дополнительно пишет в начале три невидимых байта, по которым Excel и старые программы узнают UTF-8.
Почему Notepad++ иногда неправильно определяет кодировку?
В файле без BOM нет сведений о кодировке, поэтому Notepad++ её угадывает. В коротких файлах с малым числом русских букв он ошибается чаще.
Можно ли конвертировать сразу несколько файлов?
В Notepad++ только через макросы или плагины. В Mojibuster файлы обрабатываются по одному, каждый за несколько секунд.