>[оверквотинг удален]
> LC_CTYPE="C"
> LC_COLLATE="C"
> LC_TIME="C"
> LC_NUMERIC="C"
> LC_MONETARY="C"
> LC_MESSAGES="C"
> LC_ALL=
> Как решить проблему?
> Запуск asterisk-а прописан в rc.conf.
> Версия FreeBSD 10.3.Для начала, чтобы не было путаницы:
1. «Кодировка скрипта» — это кодировка его тела. С этим, как я понимаю, проблем нет.
2. То, что в LC_* и LANG, меняет не кодировку (сам текст не перекодируется), а восприятие обрабатываемого текста запускаемыми в данном контексте приложениями, как закодированного в указанной кодировке.
Теперь по сути: telnet изначально 7-битный, поэтому 8-й бит может банально отрезаться. Покажите отрывок из скрипта. Может, в вашем случае подойдёт nc/netcat вместо telnet?
И не забывайте, что в собственно SMS используется отнюдь не UTF-8...
И, да, setenv и не будет работать, так как это команда csh, а у вас sh-скрипт, совсем другой язык. Аналог setenv в Bourne-скриптах — export.