Угловая загрузка текста в виде файла, в блокноте не отображаются символы новой строки - PullRequest
0 голосов
/ 29 апреля 2019

Я загружаю текстовые данные в виде файла .txt, используя код JavaScript в моем приложении Angular.

Ниже мой код:

function download_text_as_file(data: string) {
    var element = document.createElement('a')
    element.style.display = 'none'
    element.setAttribute('href', "data:text/plain;charset=UTF-8,%EF%BB%BF" + encodeURIComponent(data))
    element.setAttribute('download', `file_name.txt`)
    document.body.appendChild(element)
    element.click()
    document.body.removeChild(element)
}

Но когда я открываю загруженный файл с помощью Блокнота в Windows, он почему-то не обнаруживает символы новой строки в строке. Тем не менее, текст отображается правильно, когда я открываю его с помощью Notepad ++.

Я думаю, что это может быть проблема кодировки файла, но файл сохраняется в формате UTF-8, и Блокнот не должен иметь проблем с его декодированием.

Только к вашему сведению: я открыл файл с помощью блокнота и нажал «Сохранить как», и он предоставлял опцию по умолчанию как UTF-8, которая говорит, что файл сохраняется правильно в формате UTF-8.

Должен ли я использовать любой другой формат кодирования?

1 Ответ

1 голос
/ 29 апреля 2019

Нет ничего плохого в формате UTF.Блокнот имеет ограничение, чтобы видеть конечные строки как CRLF (\ r \ n), ограничение, которого нет у Notepad ++.

Конечные строки специфичны для ОС (для некоторых требуется CRLF, CR или LF).Это означает, что вы не сможете изменить разрывы строк, полученные с сервера, путем изменения формата UTF.

Чтобы увидеть разрывы строк в Блокноте, вам придется заменить разрывы строк на вашей стороне javascript (замените \ n или \ r на \ r \ n).

...