Ruby 1 个中文算 2 个字符计算字符串长度

kingwkb · July 29, 2014 · Last by kingwkb replied at July 29, 2014 · 4159 hits

ruby 默认使用 utf-8 编码,这类编码是变长的 从 1-3 个字符不等

当要把一个中文当 2 个字符计算时候 直接 '中文'.b.length 得到的是 6

转换成 gbk 编码可以得到一个中文 2 个字符 '中文'.encode('gbk'.b.length) 得到的是 4

这样没有问题吧?

另外,好多网站都是将注册用户名 中的中文算 2 个字符,为什么要这样做呢?

现在新网站还有必要这样做吗?

对啊,为什么要这样做呢?谁在乎?

因为那种数据库一般用的是 GBK 编码的吧。。。

而且现在帐号和用户名一般也都不一样了。。。限制也没啥意义了……

1 楼神图啊。who care?

用户名为啥不能一个字母?我喜欢一个字母的

#1 楼 @Rei #2 楼 @Kabie Rei 发的那些都没用户名,国外也不用考虑 utf-8 字符吧 恩,现在我做新站,在考虑这用户名限制,只能中文,英文,数字,最大 16 个,不能数字开头和纯数字,最小不限,可以一个字符

You need to Sign in before reply, if you don't have an account, please Sign up first.