2010-03-27 5 views
1

내 프로그램 파일이 UTF-8로 인코딩되었으므로 "abc".length == 3이지만 "åäö".length == 6입니다. 나는 å, ä, ö 등이 UTF-8로 2 바이트로 저장되어 있고 Ruby String은 바이트가 아닌 (문자가 아님) 시퀀스라는 것을 알지만, 성가시다! 이 문제를 해결하려면 모범 사례가 있습니까?Ruby에서 비 영어 문자를 처리하는 가장 좋은 방법은 무엇입니까?

+1

당신은 여전히 ​​= 'U'$ KCODE 1.8 루비 수있다; require 'jcode'; "åäö".jlength # => 3 – khelll

+0

감사합니다. 귀하의 의견은 1.9로 업그레이드하지 않은 모든 분들께 매우 중요합니다. (업그레이드 후 나는 루비 인터프리터를 호출 할 때 스위치 (-e 정도)를 제출할 수도 있음을 배웠다. – ragnarius

답변

4

당신은 ruby1.9 사용할 수 있습니다

$ ruby1.8 -e 'puts "åäö".length' 
6 
$ ruby1.9 -e 'puts "åäö".length' 
3 
+0

고마워, 정말 잘됐다! – ragnarius

0

그냥 파일의 상단에이 명령을 추가 :이 도움이

# -*- encoding: utf-8 -*- 

희망을.

+0

고마워, 그래도 여전히 "åäö".length == 6 – ragnarius

+0

나는 가장 좋은 방법은 업데이트하는 것이라고 생각한다. –

+0

1.8 afaik에서는 작동하지 않습니다. – khelll

관련 문제