用户名和空格

时间:2008-10-16 10:37:29

标签: user-input account

在过去的许多年里,我已经在线或离线托管的各种应用程序和平台上注册。

为什么用户名中不允许使用空格,因为空格对于名称来说非常自然,大多数计算系统都可以有效地处理它们。

(很多人可以就其他非法的特殊字符提出类似的问题。但是他们的情况更容易理解,因为它们对现实世界的命名方案来说都不是很自然。And surely!)

7 个答案:

答案 0 :(得分:4)

与用户名中的空格相关的一个微妙问题是空格字符是“不可见的”,并且两个连续的空格可能看起来非常类似于单个空格。进入两个空间而不是一个空间所产生的错误很难被发现,这是一起禁止空间的一个原因。

某些系统可能会禁用空间但仍允许不间断的空间。智能用户可以使用此事实在用户名中包含空格。

答案 1 :(得分:2)

我想是因为某些代码仍在处理输入作为一组空间分隔参​​数,就像Windows命令提示符处理不带引号的文件名一样。例如,如果您要将用户名传递给用C语言编写的外部可执行进程,其中用户名在命令行上传递,它将作为两个参数到达C应用程序。

虽然这在实践中可能不会发生太多,与许多特殊字符大致相同,但我猜其原因就在于此。

答案 2 :(得分:2)

我认为实际上这可能是需要打破的那些惯例之一。大多数系统现在处理大量复杂数据,并用于正确处理包含空格的文本。我很高兴发现fogbugz(另一个插件)将接受您的电子邮件地址,您的用户名或您的真实姓名,因为您在登录时输入了它作为您的用户名。

这只是一个约会,从8个字母文件名的日子开始,可能还有8个字母的用户名。我建议你在你的网络应用程序中允许它,让世界跟随你。 :)

答案 3 :(得分:0)

我知道的唯一理由是,如果你在空格上解析令牌,在用户名中放置空格会导致它失败。

但是,我确实同意你的意见:在今天的环境中,可能没有太多理由继续这样做,除非遗留兼容性有意义(* nix等)。

答案 4 :(得分:0)

我认为,因为通常它会在实际保存之前修剪输入字段值,例如在数据库中。

由于我们修剪了空白区域,如果我们允许它们使用密码或用户名,您可以想象如果用户输入密码为“PWD”,将会出现一个大问题。

答案 5 :(得分:0)

它可以防止混淆相似的名称组合,例如“约翰史密斯”和“约翰史密斯”。它还可以更轻松地自动识别文本中出现的名称。

答案 6 :(得分:0)

这取决于他们将被使用的地方。在unix用户名中不使用空格是有意义的,因为在unix文件名中不使用它们是有道理的 - 在命令行输入它们很麻烦。也就是说,unix确实允许在用户名和文件名中使用空格。

我认为没有理由像网络应用程序那样不允许使用空格。

实际上让我最烦的是网络应用程序不允许用户名中的@。如果它是数百万用户的东西,我真正希望可用的名称的机会很小,所以我喜欢使用我的电子邮件地址,至少保证是唯一的。