Ruby汉字子串困难
对于我的 Rails 站点,某些 UI 的空间仅足以显示用户名的前 5 个字符。因此,我截断字符串以显示如下:
@user.name[0..4]
如果名称是英文,则它可以工作。但如果 @user.name
包含中文(多字节)字符,则会出现两个问题。第一个问题是 [0..4]
只给了我 2 个字符,而不是 5 个。第二个问题是有时最后一个字符会被切成两半,屏幕上会显示垃圾。
我想知道是否有一些相对干净的方法来处理 ruby 中的子串多字节字符?
For my rails site, there's some UI with only enough space to display the first 5 characters of a user's name. So I'm truncating the string to display as follows:
@user.name[0..4]
It works if the name is in English. But if @user.name
contains Chinese (multibyte) characters, two problems arise. The first problem is that [0..4]
only gives me 2 characters, not 5. The second problem is that sometimes the last character gets cut in half and garbage shows up on screen.
I was wondering if there's some relatively clean way to handle substring-ing multibyte characters in ruby?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
这里一篇关于 Ruby 1.8 和多字节支持(或者更确切地说,缺乏它)的优秀文章。
根据那里的情况,您可以尝试执行以下操作:
Here's an excellent article about Ruby 1.8 and multibyte support (or, rather, the lack of it).
Based on what's there, you can try doing something like: