Should you use special characters in passwords?
Special character passwords are more secure and harder to guess than uppercase passwords. Users are encouraged to select special characters. Certain characters might pose problems for certain applications. Avoid using such characters when possible.
Should I allow special characters in username?
A well-designed system doesn't necessarily need to prevent any special characters in usernames. That said, the reason underscores have traditionally been accepted, is that underscore is typically treated as a "word" character, along with letters and numbers.