Hallo,
Wenn du # verwenden willst musst du es correkt URL encoden
Wenn die URL einen Querystring enthält, gehört der Ankerteil mit codiertem # aber zum Querystring. Das ist ja der Sinn der Codierung, weil # eine feste Bedeutung in einer URL besitzt.
Gruß