Unicode problem with mb_chars.index


I tried the following
str =“ÄÄa__”
assert str.mb_chars.is_utf8?
assert str.is_utf8?

this is logical

assert_equal 4, str.index(“a”, 4)

this is not logical. shouldn’t this be nil !?

assert_equal 2, str.mb_chars.index(“a”, 4)

Why is the last line failing? And how could I fix this?


PS: I am using ruby 1.8.6 on linux with rails 2.2.2

I found a workaround for this:
last = str.mb_chars.length - 1
str.mb_chars[from_index, last].index(“a”) + from_index