用户名是否区分大小写?

Ste*_*hen 8 security user-interface

我正在查看一些将用户名转换为小写的代码,然后再存储它们.我90%肯定这是可以的,但是那里的系统实际上需要用户名的区分大小写(特别是在健康行业)?

注意:我的特定代码不在入口点.我们从其他系统获取用户名.我所担心的是依赖于那些系统(可能或可能不在我们的控制之下),在相同的情况下始终传递用户名(当描述同一用户时).

另外值得注意的是 - 代码是:

userName.toLowerCase(Locale.ENGLISH)
Run Code Online (Sandbox Code Playgroud)

所有用户名都是英文的吗?这只是匹配数据库中的排序规则吗?请注意(至少在java中)String.toLowerCase()定义为String.toLowerCase(Locale.getDefault())

Ste*_*hen 22

unix登录区分大小写......

有没有其他系统这样做?

  • 讨厌匆匆行事.可悲的是,他们发生了. (2认同)

And*_*son 6

toLowerCase只有一个理由让它接受一个语言环境:

因为小写字母i在每种标准语言中都有一个点,所以字母I用点转换成ai.

但在土耳其语中,还有一个大写字母,上面有一个点.这变成了一个小写字母i.

"常规"的土耳其首都我被改造成一个小的ı - 没有一个点.

所以,除非你的土耳其用户名都被称为IiI1I1iiII,我几乎不担心这个.

除土耳其语之外的其他语言都具有相同的toLowerCaseImplementation.所以你可以选择Locale.ENGLISH或Locale.GERMAN等等.一定要确保你不挑选土耳其语.

有关更多详细信息,请参阅javadoc

编辑:感谢utku karatas我可以/复制粘贴正确的字形在帖子中.

  • 我想指出的是,**不仅仅是**土耳其语言具有不同的“toLocaleLowerCase”实现。目前有3种不同规则的语言,即立陶宛语、土耳其语和阿塞拜疆语。[来源](http://www.unicode.org/Public/UCD/latest/ucd/SpecialCasing.txt) (2认同)

BC.*_*BC. 0

如果您的唯一目标是将一个用户与另一个用户区分开来,那么您希望不仅仅是大小写成为一个因素,这似乎是合乎逻辑的。