@SpeakeazyYT2

Почему символ «я» передаётся дубляжом в кодировке CP-1251 на Linux?

Здравствуйте. Использую скрипт Bash, который выполняет команды telnet.
Скрипт: https://pastebin.com/iVsxskRM
В нём присутствует команда echo $Message, для передачи сообщения на русском языке. Кодировка скрипта стоит CP-1251 (Unix LF). В сообщении присутствуют маленькая буква "я". Суть скрипта: отправка письма от чужого ящика без авторизации. В самом письме после передачи буква "я" дублируется дважды. Как такое исправить?
  • Вопрос задан
  • 170 просмотров
Пригласить эксперта
Ответы на вопрос 4
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
1. Перестать маяться фигнёй и использовать программы для отсылки почты, коих немеряно под линуксом.
2. Не использовать кривые кодировки, только UTF-8.
3. Прочитать про стандарты электронной почты (RFC-5321, RFC-5322), чтобы потом не писать вопросы "Почему все мои письма попадают в спам". Особое внимание обратить на фразы, содержащие слова MUST, MUST NOT и REQUIRED.
Ответ написан
Комментировать
ky0
@ky0
Миллиардер, филантроп, патологический лгун
А почему бы не конвертировать перед отправкой в какой-нибудь более подходящий формат?
Ответ написан
Комментировать
CityCat4
@CityCat4
Внимание! Изменился адрес почты!
Насморк через .опу не пробовали лечить, пардон? Использовать однобайтную кодировку Windows в скриптах для Linux и потом удивляться, что что-то не работает? Удивительно, как оно вообще работает. Используйте UTF-8 и будет счастье (наверное). И не забывайте про MIME-Encode, чтобы не спрашивать потом, почему мои письма отображаются краказябрами.
Ответ написан
Комментировать
в протоколе telnet код 255 (соответствующий 'я' в Windows-1251) является управляющим, поэтому при необходимости передать символ с кодом 255 он передается два раза. Это же касается протокола FTP, т.к. исторически он являтся расширением telnet.

Можно использовать binary-режим в telnet, или использовать nc вместо telnet, но я бы настоятельно рекомендовал использовать для отправки писем что-то специальное, например swaks.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы