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

kingwkb · 2014年07月29日 · 最后由 kingwkb 回复于 2014年07月29日 · 4170 次阅读

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 个,不能数字开头和纯数字,最小不限,可以一个字符

需要 登录 后方可回复, 如果你还没有账号请 注册新账号