The angle-bracket "<" and ">" and double-quote (") characters are
excluded because they are often used as the delimiters around URI in
text documents and protocol fields. The character "#" is excluded
because it is used to delimit a URI from a fragment identifier in URI
references (Section 4). The percent character "%" is excluded because
it is used for the encoding of escaped characters.
말하자면 #은 uri schema 가운데서 특별한 목적을 가지고 있기 때문에 일반적인 문자열로 uri 내에서 사용될 수 없다는 의미입니다. (그 외 사용할 수 없는 몇개의 문자가 나옵니다.)
보안때문에 그럴겁니다.
액티브레코드를 쓰신다면 당연히 처리가 되서 스트링 자체가 없어질테구요.
주소표시줄에도 마찬가지 입니다. (config.php 의 Allowed URL Characters 참고)
쿼리 날리실때 \# 정도 처리는 하셔야할듯 합니다.