Is there anything that could fix this? Off the top of my head, browsers could encode the results of any functions that get the URL. But after encoding/decoding requests/responses and unknown server logic, the encoding may be removed.
As a site owner, not embedding third party ads on your site would fix it. Then you only need to worry about your own code.
Really? what's the justification for that policy? You'd think ad networks would want ads to be safe for users.
Their FAQ does mention that they'll grant exceptions though.