Трудности с подстрокой китайских иероглифов - PullRequest
0 голосов
/ 22 февраля 2011

Для моего сайта rails есть некоторый интерфейс, в котором достаточно места для отображения первых 5 символов имени пользователя.Поэтому я усекаю строку для отображения следующим образом:

@user.name[0..4]

Это работает, если имя на английском языке.Но если @user.name содержит китайские (многобайтовые) символы, возникают две проблемы.Первая проблема заключается в том, что [0..4] дает мне только 2 символа, а не 5. Вторая проблема заключается в том, что иногда последний символ разрезается пополам, и на экране появляется мусор.

Мне было интересно, есть ли какие-то относительночистый способ обработки многобайтовых символов в ruby?

1 Ответ

3 голосов
/ 23 февраля 2011

Вот отличная статья о Ruby 1.8 и многобайтовой поддержке (или, скорее, об ее отсутствии).

Исходя из того, что есть, вы можете попробовать сделать что-то вроде:

# this should get you first 4 characters of the string:
your_chinese_string.scan(/./mu)[0,4].join
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...