I posted this in a similar thread a few months ago, but I'll repeat it here and urge as many others as I can persuade to do the same.
As soon as you identify the caller or knocker as being from a commercial organization or charity, ask them to spell the name of the group for you. Then explain you want to have it right for your list of organizations you would never, ever do business with because they have invaded your privacy.
If your jurisdiction (I think it varies from state to state and province to province in N. America) has a no-call law, you can also tell them that if they ever call again you WILL have them charged.
All of this, stated matter-of-factly, will certainly cut the number of nuisance calls and if everybody did it maybe companies would finally get the message that the practice is not profitable. Then they'd quit, for sure.