很多网站在表单输入框要做验证,验证字符数量的时候,很多网站的默认规则是:中文占两个字符,英文占一个字符 比如“网易云课堂的昵称”
这个规则是怎么来的?有什么考量? 中文和英文都各占一个字符不行吗
很多网站在表单输入框要做验证,验证字符数量的时候,很多网站的默认规则是:中文占两个字符,英文占一个字符 比如“网易云课堂的昵称”
这个规则是怎么来的?有什么考量? 中文和英文都各占一个字符不行吗
|
xssApr 19, 2017
1
unicode 最少需要 2bytes
ascii 字符 1byte 中文应该都在 unicode 字符里面, 键盘上所有可见的字符都在 ascii 字符集里面. |
|
morethanseanApr 19, 2017
2
比如论坛的用户名长度,如果最低长度是 2 ,允许 2 个字母他们觉得太少了,至少要 4 个字母吧,但是 4 个中文又太多了, 2 个中文也不错啊 2333333
|
|
JJaicmkmyApr 19, 2017
3
因为本身中文就是 2 byte 。
|
|
zjqzxcApr 19, 2017
4
一般来说, gbk 占 2 字节, utf-8 占 3 字节
|
|
mozutabaApr 19, 2017
5
写错了?中文 1 个字符,英文半个字符
|
|
jasontseApr 19, 2017 via iPad
6
因为全角字符是双字节的
|
|
jyboxApr 19, 2017
7
因为有些对多字节字符集支持比较弱的数据库和编程语言,对于字符串的长度是按照实际占用的字节数计算的,目前比较新的都是按照字符数来计算了。
|
|
8
我也是这么设置的,但并不是因为什么一个字节两个字节的,主要是 UI 的限制。因为一个汉字的显示宽度大概等于两个字母,同时一个汉字的信息密度要比一个字母大。
假如一个数据限制了五个字符长度,在汉字和字母都算一个字符的情况下,中文可以写「苹果手机」,英文却连「 iPhone 」都不能写。 |
|
9
@ferrum 我也是这么觉得
|
|
msg7086Apr 19, 2017
10
历史遗留问题,偷懒直接判断字节数。
|
|
msg7086Apr 19, 2017
11
还有一个潜在的原因。一个汉字的宽度大约等于两个字母数字,这样计算的话最终的字符宽度会比较接近。
|