http://i.imgur.com/698dzMo.png
After trying with the css suggested here on Google inside Chrome, the problametic characters don't have the top going across too high like originally, but it gets capped on the top of the first line of the paragraph, instead of the line the character is actually at.
That said, I'm not sure how to solve this though.
But just for the technical challenge you could do something like this in Javascript to chop every individual special character:
string.split("").map(function(a){
return /[a-z0-9\s]/i.test(a) ? a : '<span class="s_char">' + a + '</span>';
}).join("");
And apply the mentioned CSS to the "s_char" class.That said, if those sorts of things bother an individual, they could run that on the page themselves, I suppose, so it's good for that :)
It seems like there isn't really any CSS only solution for this without wrapping every character in its own element like jQueryIsAwesome suggested.