I've been charged by horses, but have always found that they can be turned away with the right attitude.
Sometimes you just have to have a confidence in yourself that isn't really realistic.
I haven't been charged by a stallion, because they often understand this principle and have the same crazy sort of confidence that can be suicidal.
That's how you become the alpha of a herd.
I choose not to work with any stallion that is not well broke, personally.
I have dealt with some really aggressive and dangerous mares though, who I preferred to have something in hand when around- a lasso, lead rope, lunge
whip, or dressage stick.
I have never had to actually use these things for contact, just as a warning. Like your friend with the cane.
More sensitive horses will back off with a stern look in the eye, or subtle body lunge their direction.
I remember my first few years, when it would sometimes occur that when I entered the field, the whole herd (7) would see me from afar and come running
towards me at high speed. The ground would shake and it would really scare me. It wasn't long before I learn how well they can come to a stop, and
that they always did, even if it was two inches from me.
But it is still the sort of thing that makes the unexperienced observers stop breathing. I always feel a bit judgmental towards the people who will
take advantage of that and impress newbies without explaining to them it is nothing special.
I have a friend who loves to act all cocky in front of inexperienced people (especially women) and give them the idea that he just did something
He also has a horse that he trained to do spanish steps and rear on command, which leaves them absolutely breathless, not knowing how easy it is to
train that (and that that horse cannot be ridden, as he rears everywhere and flips backward).
I saw a comment yesterday on a dressage video, where someone wrote, "Wow! It is amazing how that horse could memorize all the steps to that whole
dance and do it so well!"
I guess they thought the rider was there just for looks...??