Di CentOS, tidak diperlukan paket tambahan:
python -c "import urllib;print urllib.quote(raw_input())" <<< "$message"
Memperluas jawaban Rockallite yang sangat membantu untuk Python 3 dan input multiline dari sebuah file (kali ini di Ubuntu, tetapi itu tidak masalah):
cat any.txt | python3 -c "import urllib.parse, sys; print(urllib.parse.quote(sys.stdin.read()))"
Ini akan menghasilkan semua baris dari file digabungkan menjadi satu URL, baris baru diganti dengan %0A
.
Anda ingin $MESSAGE
berada dalam tanda kutip ganda, sehingga shell tidak akan membaginya menjadi kata-kata terpisah, lalu meneruskannya ke PHP sebagai argumen:
ENCODEDMESSAGE="$(php -r 'echo rawurlencode($argv[1]);' -- "$MESSAGE")"
Tomcat mulai tanpa kesalahan tetapi tidak mendengarkan pada 8080
Mengapa uniq menghitung kata yang identik sebagai berbeda?