A lazy way would be to think up e-mail addresses (you know you can't have some chars in those). In any case you can easily test what you ask for yourself on your own GNU/Linux box with something like
Code:
for char in + # @ - ~ : ^ * ( ) | ^V^T ^V^J ^V^H < > \ / ? ! " ' ` , = ¢ £ ¤ ¥ ¦ § ¨ © ' ' { } \; ; do useradd "l${char}ser"; done
All you have to do is make a list of chars you think or know aren't working. Note you may have to quote some chars and to get ^V^T you type CTRL+V,CTRL+TAB.