LINUX.ORG.RU

Спецсимволы в тексте

 , ,


0

3

Доброго дня! Имеется asterisk + chan_dongle + какой-то там модем. Входящие смс обрабатываются диалпланом следующими строками:

exten => sms,1,Noop(Incoming SMS from ${CALLERID(num)} ${BASE64_DECODE(${SMS_BASE64})})

exten => sms,n,System(/usr/bin/screen -AmdS 'lynx-${STRFTIME(${EPOCH},,%Y-%m-%d %H:%M:%S)}' /usr/bin/lynx 'https://site.com/sms.aspx?from=${CALLERID(num)}&to=${DONGLENAME}&text=${BASE64_DECODE(${SMS_BASE64})}')

Так вот возникла проблема, когда пришло сообщение, в тексте которого было слово Don`t. Вот этот самый символ «`» изгадил всю малину и я даже не представляю как с этим справиться.



Последнее исправление: hs85 (всего исправлений: 1)

Ответ на: комментарий от mky

Да, именно тут. Получается, что в тексте присутствует неэкранированная одинарная кавычка, ну и на этом все заканчивается. Наверное надо как-то менять кавычки в тексте, но не понимаю как именно.

hs85
() автор топика
Ответ на: комментарий от hs85

sed'ом замени на какие-нибудь три символа (скажем, «КЫВ» — то, что в реальном тексте наверняка никогда не появится); после преобразования обратно тем же sed'ом эту фигню на апостроф замени.

anonymous
()
Ответ на: комментарий от hs85

Ты то тут при чем? Я у анона спрашиваю, который предложил свой мегакостыль.

deep-purple ★★★★★
()
Ответ на: комментарий от hs85

Тогда пиши багрепорт на этот сайт — пусть сами разбираются.

deep-purple ★★★★★
()
Ответ на: комментарий от hs85

Ну, пробуйте QUOTE(), или отказывайтесь от BASE64_DECODE, пишите скрипт на bash, который будет осуществлять это DECODE сам и делать ″exec screen ...″.

mky ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.