Как узнать, сколько байтов занимает блок текста в электронном письме?

Я пытаюсь выяснить, сколько байтов данных занимает ЧАСТЬ электронного письма (а не все электронное письмо). Как я могу это узнать?

Может быть, в текстовом редакторе, например, в блокноте ++, есть что-то, что может мне сказать?


Перетащите сообщение из вашего почтового клиента на рабочий стол и откройте полученный файл (возможно, .EML ) в текстовом редакторе, поддерживающем различные кодировок и показывает размер данных (например, Notepad2). Затем вы можете просто вырезать сообщение до и после, чтобы увидеть фактический размер желаемого блока (в строке состояния для Notepad2).


7

Notepad ++ делает это. Просто скопируйте и вставьте часть сообщения, размер которой вы хотите увеличить, на новую вкладку и прочтите длину в поле length в строке состояния внизу:

Если вы установите кодировку, соответствующую вашему почтовому клиенту (меню Кодировка -> UTF-8 ), он будет правильно подсчитывать символы Юникода (например, ☃ имеет длину 3 байта в кодировке UTF-8).

Это применимо только к обычным текстовым сообщениям, но не к HTML или многостраничным/альтернативным сообщениям.

Улучшите этот ответ
ответил 24 февраля ’12 в 13:45
добавить комментарий |

Notepad ++ делает это. Просто скопируйте и вставьте часть сообщения, размер которой вы хотите увеличить, в новую вкладку и прочтите длину в поле length в строке состояния внизу:

Если вы установите кодировку, соответствующую вашему почтовому клиенту (меню Кодировка -> UTF-8 ), он будет правильно подсчитывать символы Юникода (например, ☃ имеет длину 3 байта в кодировке UTF-8).

Это применимо только к обычным текстовым сообщениям, но не к HTML или многостраничным/альтернативным сообщениям.


3

Каждый символ в простом тексте должен быть равен 1 байту. Таким образом, 512 символов будут 0,5 КБ; 1024 символа будут 1 КБ и так далее. Например, этот образец электронной почты будет иметь размер 308 байтов:

  Дата: 23 февраля 2012 г., 12:00:00 -0800 От: Боб  Пользователь  -Агент: Mozilla/5.0 (Windows NT 5.1; rv: 8.0) Gecko/20111105 Thunderbird/8.0MIME-версия: 1.0Кому: sally @ example. comSubject: TestContent-Type: текст/простой;  charset = ISO-8859-1Content-Transfer-Encoding: 7bitЭто тестовое сообщение  

Изменить: чтобы уточнить, «один символ» относится к необработанному источнику сообщения электронной почты , а не форматированное представление, показываемое большинством почтовых клиентов. Исходный вопрос относится конкретно к обычному тексту и к Notepad ++ (который имеет кодировку ANSI по умолчанию), поэтому я предположил, что сообщение будет закодировано как простой ANSI.

Улучшите этот ответ
отредактировано 24 февраля 2012 г. в 1:00
ответил 23 февраля ’12 в 19:17
  • 3
    -1 для «каждого символ = 1 байт «. Неправда с давних пор. — user1686 23 фев. 2012, в 19:23
  • @grawity, электронная почта всегда кодируется в 7-битном ASCII. Поскольку байт (8 бит) является наименьшим отдельным элементом данных, которым можно напрямую управлять, каждый 7-битный символ сохраняется как 1 байт. Откройте необработанные данные любого электронного письма в шестнадцатеричном редакторе, и вы увидите, что для каждого символа используется 1 байт. — Эндрю Ламберт, 24 февраля 2012 г., 0:32
  • 2
    не занимает один байт. — Игнасио Васкес-Абрамс, 24 февраля 2012 г., 0:43
  • 1
    @MikeB Пробелы и пробелы состоят из символов. — iglvzx, 24 фев. 2012, в 2:21
  • 1
    @iglvzx Спасибо. Не знал этого. — Майк Б. 24 фев. ’12 в 2:26
| показать 7 дополнительных комментариев

Каждый символ в простом тексте должен быть равен 1 байту. Таким образом, 512 символов будут 0,5 КБ; 1024 символа будут 1 КБ и так далее. Например, этот образец электронного письма будет иметь размер 308 байт:

  Дата: 23 февраля 2012 г., 12:00:00 -0800 От: Боб  Пользователь  -Агент: Mozilla/5.0 (Windows NT 5.1; rv: 8.0) Gecko/20111105 Thunderbird/8.0 MIME-версия: 1.0 Кому: sally@example.com Тема: TestContent-Type: text/plain;  charset = ISO-8859-1Content-Transfer-Encoding: 7bitЭто тестовое сообщение  

Изменить: чтобы уточнить, «один символ» относится к необработанному источнику сообщения электронной почты , а не форматированное представление, показываемое большинством почтовых клиентов. Исходный вопрос относится конкретно к обычному тексту и к Notepad ++ (который имеет ANSI в качестве кодировки по умолчанию), поэтому я предположил, что сообщение будет закодировано как простой ANSI.


2

Чтобы получить хорошую оценку, один вы можете скопировать и вставить текст в файл .txt , а затем прочитать полученный размер файла. Я написал сценарий AutoHotkey, чтобы сделать это немного проще. Нажмите Win + C , чтобы отобразить небольшое всплывающее сообщение с размером файла выделенного текста.

  #c ::; [Win] + [C] {OriginalClipboard: = Clipboard Clipboard = Send, ^ c ClipWait FileAppend,% Clipboard%, temp.txt Clipboard = Clipboard: = OriginalClipboard ClipWait FileGetSize, fileSize, temp.txt MsgBox,  ,, Байты:% fileSize% FileDelete, temp.txt return}  

Meta : мой ответ выше о 600 байт.

Улучшите этот ответ
отредактировано 24 февраля ’12 в 1:34
ответил 24 февраля ’12 в 1:26
добавить комментарий |

Чтобы получить хорошую оценку, вы можете скопировать и вставить текст в .txt file, а затем прочтите полученный размер файла. Я написал сценарий AutoHotkey, чтобы сделать это немного проще. Нажмите Win + C , чтобы отобразить небольшое всплывающее сообщение с размером файла выделенного текста.

  #c ::; [Win] + [C] {OriginalClipboard: = Clipboard Clipboard = Send, ^ c ClipWait FileAppend,% Clipboard%, temp.txt Clipboard = Clipboard: = OriginalClipboard ClipWait FileGetSize, fileSize, temp.txt MsgBox,  ,, Байты:% fileSize% FileDelete, temp.txt return}  

Meta : мой ответ выше о 600 байт.


1

Если вы отправляете электронную почту в виде обычного текста , то количество байтов будет примерно равно количеству символов в выделенном тексте. Если вы вставите текст в Microsoft Word, он сможет подсчитать количество букв, чтобы вы могли помочь.

Если вы отправляете письмо как Rich Text или HTML , тогда нет простой формулы. В целом, чем длиннее и сложнее форматирование текста, тем больше он будет в байтах.

Если действительно важно, чтобы вы уменьшили размер своего электронного письма, всегда используйте простой текст кодировка.

Улучшите этот ответ
ответил 24 февраля ’12 в 0:39
добавить комментарий |

Если вы отправляете электронную почту в виде обычного текста , то количество байтов будет примерно равно количество символов в выделенном тексте. Если вы вставите текст в Microsoft Word, он сможет подсчитать количество букв, чтобы вы могли помочь.

Если вы отправляете письмо как Rich Text или HTML , тогда нет простой формулы. Как правило, чем длиннее и сложнее форматирование текста, тем больше он будет в байтах.

Если действительно важно уменьшить размер вашего электронного письма, всегда используйте простой текст кодировка.



Почему текстовый файл содержит только слово «привет» размером 6 (а не 5) байтов ?

Как я понял, один символ имеет размер в один байт. В качестве теста я создал (используя Gedit) два текстовых файла, один с именем hello.txt , содержащий только слово «привет», и аналогичный файл с именем goodbye.txt содержащий только слово «до свидания». Вот как они выглядят с ls -lhtr :

Похоже, что hello.txt , который содержит 5 символов, имеет размер 6 байт, а goodbye.txt , который содержит 7 символов, имеет размер 8 байт. В общем, похоже, что файл с символами n имеет размер n + 1 байтов. Может ли кто-нибудь объяснить мне, откуда берется дополнительный байт?


Ваш редактор, скорее всего, вставляет символ новой строки в файл. В Linux это будет однобайтовый символ ‘ n’ (новая строка). В некоторых ОС это будет двухбайтовая последовательность ‘ r n’ (возврат каретки, новая строка).

Проверьте содержимое файла с помощью: od -c

Будет показано побайтное содержимое.

Оцените статью
logicle.ru
Добавить комментарий