There is so much that could go wrong with pepper spray, tasers, etc.
Not only in the act of self-defense itself, where it might fall into the attackers hands or make him additionally violent, you might also get into serious legal trouble after using it, or if police searches you for some reason.
If you don't have citizenship (maybe residencia counts as well) even more so. I.e. argentines can have guns in their house, AFAIK, foreigners can't.
When I got robbed, I don't think I could have used any of it. When the right moment came, I just pushed the attacker and ran (at that time he had my mobile phone but did not have my wallet yet. Made a thread about it back then). I don't think that I would have had time to pull out, point and fire a taser.
If, against all recommendations, you get yourself some self defense weapon, make sure to get good training and routine on it. In the moment where you need it, you won't have time to think.
The only real protection I know of, is getting a custodio (personal security guard, generally retired policemen as they are allowed to carry a gun with them), although I don't have any idea how much they cost.