Блокнот Windows не поддерживает символ новой строки '\ n' - PullRequest
13 голосов
/ 06 января 2012

Из моего приложения для iPhone я вывожу данные из текста в файл. При открытии с помощью блокнота Windows все данные находятся на одной строке, и там, где должна быть новая строка, присутствует символ блока (показывая, что это нераспознанный символ или что-то в этом роде). При открытии с Windows WordPad, он отображается просто отлично.
Что-то не так в моем коде? Я просто вывод "\ n", когда я хочу новую строку.

enter image description here

ПРИМЕЧАНИЕ: он отлично работает с другими редакторами, такими как textedit, MS Word на Mac и Windows.

Ответы [ 3 ]

17 голосов
/ 06 января 2012

Windows по умолчанию использует \r\n в качестве маркера конца строки. Блокнот распознает только то, что другие текстовые редакторы могут знать о других стилях конца строки и отображать правильно.

4 голосов
/ 08 мая 2018

Я просто выводю '\ n', когда хочу новую строку.

И начиная с мая 2018 года (6 лет спустя), вы получите новая строка!

См. " Представление поддержки расширенных окончаний строки в Блокноте " Мишелем Лопесом его твит )

В течение многих лет Блокнот Windows поддерживал только текстовые документы, содержащие символы конца строки (EOL) в Windows - возврат каретки (CR) и перевод строки (LF).Это означает, что Notepad не смог правильно отобразить содержимое текстовых файлов, созданных в Unix, Linux и macOS.

Сегодня мы рады сообщить, что исправили эту проблему!

Начиная с текущей сборки Windows 10 Insider , Блокнот будет поддерживать обычные окончания строк Unix / Linux (LF), окончания строк Macintosh (CR) и окончания строк Windows (CRLF).

В новых файлах, созданных в Блокноте, по умолчанию будет использоваться конец строки Windows (CRLF), но теперь можно будет просматривать, редактировать и распечатывать существующие файлы, правильно поддерживая текущий формат окончания строки файла.

Также обратите внимание, что в строке состояния отображается обнаруженный формат EOL открытого в данный момент файла.

См. .bashrc, наконец, отображается правильно!

https://msdnshared.blob.core.windows.net/media/2018/05/Notepad-after.png

2 голосов
/ 06 января 2012

Это потому, что \n не представляет полный разрыв строки в Windows.Использование \n - это "Unix" способ делать разрывы строк.

В Windows есть текстовые редакторы, такие как Notepad ++, которые обрабатывают оба, но Notepad действительно глуп в этом отношении.

Я предлагаю вам создать настройку в вашем приложении iPhone, где пользователь может выбирать между окончаниями строк Windows и Unix - тогда это его ответственность: -)

...