내 레일 사이트에는 사용자 이름의 처음 5 문자 만 표시 할 수있는 충분한 공간이있는 UI가 있습니다. 따라서 다음과 같이 표시 할 문자열을 자릅니다.루비 한자 문자열 문제
@user.name[0..4]
이름이 영어 인 경우 작동합니다. 그러나 @user.name
에 중국어 (멀티 바이트) 문자가 포함되어 있으면 두 가지 문제가 발생합니다. 첫 번째 문제는 [0..4]
이 5가 아니라 2 자까지만 제공한다는 것입니다. 두 번째 문제는 마지막 문자가 가끔 반으로 줄어들고 화면에 가비지가 나타나는 경우입니다.
루비에서 멀티 바이트 문자를 처리하는 비교적 깨끗한 방법이 있는지 궁금합니다.
루비 버전 :
가 무엇을 기반으로, 당신은 같은 일을 시도 할 수 있습니다? 멀티 바이트 지원이 1.9에 추가되었습니다. –
예 멀티 바이트로 무엇이든하면 1.8x의 지원이 좋지 않다는 것을 강력히 권합니다. –
ruby 1.8.7을 사용하고 있습니다. 업그레이드하는 것이 다소 고통 스럽습니다. 수동으로 1.8x에서 일어날 수있는 방법이 있습니까? – tstyle