Na CentOS není potřeba žádný další balíček:
python -c "import urllib;print urllib.quote(raw_input())" <<< "$message"
Rozšíření velmi užitečné odpovědi Rockallite pro Python 3 a víceřádkový vstup ze souboru (tentokrát na Ubuntu, ale to by nemělo vadit):
cat any.txt | python3 -c "import urllib.parse, sys; print(urllib.parse.quote(sys.stdin.read()))"
Výsledkem bude, že všechny řádky ze souboru budou zřetězeny do jediné adresy URL, přičemž nové řádky budou nahrazeny %0A
.
Chcete $MESSAGE
být ve dvojitých uvozovkách, takže to shell nerozdělí na samostatná slova, pak to předá PHP jako argument:
ENCODEDMESSAGE="$(php -r 'echo rawurlencode($argv[1]);' -- "$MESSAGE")"