The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



"Демон запускает sh-скрипт с кириллицей = проблема"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Открытые системы на сервере (Русификация / FreeBSD)
Изначальное сообщение [ Отслеживать ]

"Демон запускает sh-скрипт с кириллицей = проблема"  +/
Сообщение от yurybx (ok) on 19-Апр-18, 18:42 
На сервере работает демон asterisk от имени одноименного пользователя. Этот демон в определенных ситуациях запускает sh-скрипт, который по телнету передаёт кириллицу на GSM-шлюз (отправляет SMS). Проблема в том, что у меня не получается переключить кодировку скрипта на utf-8, из-за этого sh-скрипт передает кракозябры. Инструкция setenv в контексте пользователя не работает (setenv: not found). Если задать локаль командой "pw usermod -n asterisk -L russian", то скрипт по прежнему выполняется в латинской локали:
LANG=
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.
Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по ответам | RSS]

1. "Демон запускает sh-скрипт с кириллицей = проблема"  –1 +/
Сообщение от universite (ok) on 19-Апр-18, 19:18 
>[оверквотинг удален]
> 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.

/etc/csh.cshrc
        setenv LANG ru_RU.UTF-8
        setenv MM_CHARSET UTF-8


Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

2. "Демон запускает sh-скрипт с кириллицей = проблема"  +/
Сообщение от PereresusNeVlezaetBuggy (ok) on 20-Апр-18, 09:42 
>[оверквотинг удален]
>> LC_NUMERIC="C"
>> LC_MONETARY="C"
>> LC_MESSAGES="C"
>> LC_ALL=
>> Как решить проблему?
>> Запуск asterisk-а прописан в rc.conf.
>> Версия FreeBSD 10.3.
> /etc/csh.cshrc
>         setenv LANG ru_RU.UTF-8
>         setenv MM_CHARSET UTF-8

(не туда ответил, прошу прощения)

Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

3. "Демон запускает sh-скрипт с кириллицей = проблема"  +1 +/
Сообщение от PereresusNeVlezaetBuggy (ok) on 20-Апр-18, 09:43 
>[оверквотинг удален]
> 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.

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

4. "Демон запускает sh-скрипт с кириллицей = проблема"  +/
Сообщение от yurybx (ok) on 20-Апр-18, 10:07 
Добавил в начало скрипта строки "export LANG=ru_RU.UTF-8" и "export MM_CHARSET=UTF-8" - теперь всё работает как надо. Спасибо!

>[оверквотинг удален]
> 2. То, что в LC_* и LANG, меняет не кодировку (сам текст
> не перекодируется), а восприятие обрабатываемого текста запускаемыми в данном контексте
> приложениями, как закодированного в указанной кодировке.
> Теперь по сути: telnet изначально 7-битный, поэтому 8-й бит может банально отрезаться.
> Покажите отрывок из скрипта. Может, в вашем случае подойдёт nc/netcat вместо
> telnet?
> И не забывайте, что в собственно SMS используется отнюдь не UTF-8...
> И, да, setenv и не будет работать, так как это команда csh,
> а у вас sh-скрипт, совсем другой язык. Аналог setenv в Bourne-скриптах
> — export.

Ответить | Правка | ^ к родителю #3 | Наверх | Cообщить модератору


Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру