Windows Notepad и Notepad++ по-разному отображают новые строки в одном и том же файле

Windows Notepad и Notepad++ по-разному отображают новые строки в одном и том же файле

Я создал скрипт Perl, который получает некоторые данные и вставляет их построчно в текстовый файл. Когда я открываю этот файл с помощью Notepad++, он, кажется, имеет пустую строку-разделитель между каждыми двумя строками текста, например:

AAVX    Etracs Daily Short 1 Month S&P

ABCS    Guggenheim Abc High Dividend Et

ABI     Safety First Trust

Однако если я открою тот же файл стандартным блокнотом Windows, он отобразится без пробелов, как показано ниже:

AAVX    Etracs Daily Short 1 Month S&P
ABCS    Guggenheim Abc High Dividend Et
ABI     Safety First Trust

Вопрос в следующем: какому из блокнотов следует доверять и почему так происходит?

решение1

Это происходит, когдаЭОЛУправляющие символы неверны. Windows представляет новые строки с помощью carriage return+ line feed.

В Notepad++ вы можете проверить наличие этих символов, выбрав:

Вид>Показать символы>[x] Show End of Line

блокнот++

Вам необходимо изменить свой скрипт так, чтобы ваши данные были отформатированы следующим образом:

CRLF

решение2

Имеет ли настройка

Edit > EOL Conversion

Есть эффект? Попробуйте переключиться на UNIX.

решение3

У вас есть не-Windows EOL символ в дополнение к обычному Windows EOL CrLf. Notepad++ понимает все различные EOL символы и отображает их все. Windows Notepad не такой умный и пропускает не-Windows EOL символы.

Я не знаю Perl, но когда это происходит со мной, это почти всегда происходит из-за того, что отправляемая мной строка имеет не-Windows EOL-символ на конце. Проверьте значение кода символа Asc последнего символа в вашей строке и удалите его, если это carriage return.

Пример на VBA

If Asc(Right(sName, 1)) = 13 Then
   sName = Left(sName, Len(sName) - 1)
End If

Связанный контент