Обычно задают "белый список" -- только те символы, которые там перечислены, могут встречаться в юзернеймах. Это делается в основном для безопасности, плюс, чтобы нельзя было использовать юникод типа "перевод направления на справа налево", "возврат на 1 символ" и проч. извращения.