Ответы пользователя по тегу Программирование
  • Почему в .txt файле на Linux появляется "лишний" байт?

    @Borankin Автор вопроса
    Спасибо всем за ответы и комментарии.
    Подведу здесь итог и поясню, что удалось выяснить.

    Кратко.
    В Linux при создании текстового файла автоматически неявно в конец файла добавляется символ перевода строки (Line Feed - LF, \n). Визуально в графическом текстовом редакторе его никак не видно.

    Развёрнуто.
    1. Пробовал создавать файл разными способами.
    - С помощью консольных текстовых редакторов vim и nano.
    - В терминале с использованием перенаправления потока вывода (echo a > 1.txt).
    - А также (touch 1.txt), совместно с графическим текстовым редактором.
    Результат везде одинаковый (из комментария Rsa97 стало понятно, что результат не везде одинаковый - см. коммент)

    2. Ниже приведу примеры открытия файлов с разными символами с помощью утилиты xxd.
    Расшифровка в формате (буква = Hex = Bin = symbols)
    s = 730a = 01110011 00001010 = s\n
    W = 570a = 01010111 00001010 = W\n
    a = 610a = 01100001 00001010 = a\n
    aa = 6161 0a = 01100001 01100001 00001010 = aa\n

    a(+Enter) = 610a 0a = 01100001 00001010 00001010 = a\n\n (тот перевод строки (первый) который задан явно, с помощью Enter, его видно в графическом редакторе, а второй не видно)

    a(+Enter)a = 610a 610a = 01100001 00001010 01100001 00001010 = a\na\n

    3. Определение кодировки файлов с помощью ( file -i 1.txt) выдаёт у меня такой результат:
    1.txt: text/plain; charset=us-ascii

    В общем, разобрался что к чему. Ещё раз благодарю за ответы и комментарии.
    Между делом, наконец-то понял, что такое UTF BOM )))
    Ответ написан
    5 комментариев