我有一个 URL 字符串,其中有换行符和回车符。例如
http://xyz.com/hello?name=john&msg=hello\nJohn\n\rgoodmorning¬e=last\night I went to \roger
我的实际msg
字符串在哪里:
hello
john
goodmorning
和note
字符串是
last\night I went to \roger
为了正确发送它,我必须对此进行 urlencode
http://xyz.com/hello?name%3Djohn%26msg%3Dhello%5CnJohn%5Cn%5Crgoodmorning%26note%3Dlast%5Cnight%20I%20went%20to%20%5Croger
但是这个编码搞砸了\n和\r。虽然我希望 \n 应该转换为 %0A 和 \r 到 %0D
我写的代码是红宝石。我试图寻求帮助,Addressable::URI
但还没有帮助。其他方法可能是将 \n 和 \r 分别手动替换为 %0A 和 %0D。但是该替换可以替换有效字符,例如我不想要的last\night
字符。last%0Aight
任何人都可以提出更好的解决方案吗?谢谢。