STD 66 defines a fragment as:
fragment = *( pchar / "/" / "?" )
Therefore, in addition to the characters from the set pchar( unreserved / pct-encoded / sub-delims / ":" / "@"), /they ?can also be used directly in the fragment (i.e., percent coding is not required).
The text /explicitly mentions the text:
( "/" ) ( "?" ) . , , , URI ( 5.1).