Блокнот ++ не работает должным образом

Я использую Notepad++ для редактирования моих скриптов PHP. Однако я обнаружил странную проблему: при изменении кодировки с ANSI в UTF-8 (without BOM), сохранение, закрытие, повторная загрузка - проверка кодировки: все еще ANSI,

Есть идеи что не так? Это всегда работало для меня в прошлом. Благодарю.

4 ответа

Это ожидаемое поведение.

Может случиться, что файл сохраняется с определенной кодировкой, но после повторного открытия его в Notepad++ он обнаруживается с другой кодировкой. Это техническое ограничение, и оно возникает из-за того, что иногда полученный файл не будет отличаться, даже если используются разные кодировки. Это наиболее заметно, если файл сохраняется без специальной спецификации (метки порядка байтов), указывающей используемую кодировку.

ANSI и UTF-8 разделяют свои первые 128 символов (ASCII), что делает их неразличимыми, если это все, что вы используете. В обычном текстовом файле метаданные, указывающие кодировку, отсутствуют, поэтому все, что может сделать Notepad++ (и другие редакторы), - это просмотреть символы / данные в файле и сделать предположение.

  • Если файл имеет спецификацию, NP++ обнаруживает ее и знает о кодировке.
  • Если файл HTML или XML, кодировка читается из первой строки файла.
  • В противном случае NP ++ принимает предположение между UCS-2LE, UCS2-BE и ANSI. Вы не можете сделать различие между файлом, закодированным в UTF-8 без BOM, и файлом в ANSI с большим количеством высоких символов ASCII.

http://sourceforge.net/projects/notepad-plus/forums/forum/331754/topic/3822723


Теоретически, ответ PRacicot должен открыть все файлы ANSI/UTF-8 (без спецификации) как UTF-8. Это также рекомендуется в ответе на аналогичный вопрос переполнения стека. Если это не работает для вас, я не уверен, что можно сделать. Кодировка обозначается как ANSI as UTF-8 в строке состояния, для меня.

Вы можете изменить эту настройку в настройках notepad++.

Зайдите в меню Настройки -> Настройки -> Новый документ / Каталог по умолчанию. В разделе suck Encoding проверьте UTF-8 без BOM и выберите Apply для открытых файлов ANSI.

Если установить флажок Применить к открытым файлам ANSI, это предпочтение также будет применяться к текущим открытым документам в notepad++.

Поскольку у меня еще недостаточно очков для публикации изображения, здесь есть ссылка на postimage, куда я загрузил изображение: http://postimage.org/image/4qza0bkv9/

Удачи и счастливого программирования.

Ты должен Convert to ... вместо того, чтобы изменить Encode to ... вариант.
Вы также можете изменить эту опцию в настройках, чтобы все ваши новые файлы создавались с выбранной вами кодировкой.

imuge

Мне удалось сохранить как ANSI, и все работало нормально, но в новой версии Notepad++ здесь добавлен кликабельный выбор для изменения CRLF на CR и LF для правильной системы.

Другие вопросы по тегам