There's only one effective way and that's to take the water bottle out of the car and thoroughly wash it in the sink. It also helps if you use neat bleach inside and out and then it'll almost be like new. It's not hard to remove the bottle. You'll have to disconnect the washer motor or it's hoses then the bottle should just lift out, although there might be a clip or small bolt holding it secure. If you look at the bottle it should be obvious how it removes.
Once bleached and rinsed refit it then refill with clean screenwash. Hope that helps.
However, some washbottles are tailored to fit in awkward places and you will have to dis mantle the car to remove it. Seriously, if it can't be removed, could you syphon most of the old liquid out and go from there?
I had exactly the same problem and put it down to the brand of screenwash I used. I ran all the water out, put in a little hot water, ran the water out again and repeated that a few times. It cleared eventually. I didn't want to use bleach or the like for fear that it would harm the mechanism.
That's an easier way if you don't want to take the bottle out and do it so thoroughly Cris. You can syphon almost all the old fluid out with a small hose then do as L says. I've always used bleach with no problems away from the car (wearing old clothes!).
Be careful Cris! If you poke the needle in too far it'll stick in the tiny hole and the nozzle will pop out of the holder and look like a little black bead on the end of the needle! Then you'll certainly get a good flow of screenwash each time!
Check under the bonnet for the smell - batteries can also smell badly of rotten eggs it's the sulphuric acid in them. Make sure there's no sign of leakage from it
It is possible that you could have a leaking battery and ar only getting the smell with the washer fluid.