I have little C++ app that communicates with Rails app by sending JSON strings. I had intermittent issues where certain types of input would arrive somewhat mangled to the web app. I've traced it down to URL encoding in HTMLForm::writeUrl. As I see this method fails to encode semicolons properly which eventually breaks URL decoding on the web server side. Per RFC & and ; are valid parameter separators.