So why is it allowed in the creating account process ? :P
Just an idea:
If you strip characters accents (ñ => n, à => a, è => e, etc...),
why don't you transform special characters (which are not a letter) into a blank ?
example: pierrick°42 => pierrick 42