1

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

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

3 ответа3

7

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

Может случиться, что файл сохраняется с определенной кодировкой, но после повторного открытия его в 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 в строке состояния, для меня.

5

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

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

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

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

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

2

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

imuge

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .