Curious parameter value termination in get query paramenters

Find that # characters within query string parameters cause truncation of said value.
user_tag=test#some more_text

Test returning
Assertion with == failed
code: assert response.params()[“user_tag”] == “test#some more_text”
left: “test”
right: “test#some more_text”

Only occurs with hash # character. Normally I would put it down to using an older version of cowboy and phoenix framework but this seem to be consistent on a newer version of said cowboy and phoenix frameworks as detailed below.

Older version “cowboy”: {:hex, :cowboy, “1.0.4” and "phoenix {:hex, :phoenix, “1.3.3”
Newer version “cowboy”: {:hex, :cowboy, “2.6.3” and “phoenix”: {:hex, :phoenix, “1.4.9”

If someone has any clues please comment

This is due to URLs work. The # is a special character in URLs if you want to submit them it has to be escaped. A browser will never send you an URL with a fragment.

2 Likes