Backport #5379
closedthe join method of array return different encoding result
Description
ruby-1.9.3-rc1 :001 > [[], "中文"].join
=> "中文"
This is fine. But is the last element is nil, the result is different.
ruby-1.9.3-rc1 :002 > [[], "中文", nil].join
=> "\xE4\xB8\xAD\xE6\x96\x87"
It will cause some gems to raise error: incompatible character encodings: UTF-8 and US-ASCII
This bug can be reproduct in ruby1.9.3 preview1 and rc1, but ruby1.9.2 p180 and p290 is ok.
ruby-1.9.2-p180 :001 > [[], "中文",nil].join
=> "中文"
ruby-1.9.2-p180 :002 > [[], "中文"].join
=> "中文"
Updated by nobu (Nobuyoshi Nakada) about 13 years ago
- Status changed from Open to Closed
- % Done changed from 0 to 100
This issue was solved with changeset r33363.
saber, thank you for reporting this issue.
Your contribution to Ruby is greatly appreciated.
May Ruby be with you.
- array.c (ary_join_1): should not copy the encoding of non-string
element after string element. [ruby-core:39776] [Bug #5379]
Updated by nobu (Nobuyoshi Nakada) about 13 years ago
- Tracker changed from Bug to Backport
- Project changed from Ruby master to Backport193
- Status changed from Closed to Assigned
- Assignee set to yugui (Yuki Sonoda)
- Target version deleted (
1.9.3)
Updated by naruse (Yui NARUSE) about 13 years ago
Please backport it with r33364.
Updated by kosaki (Motohiro KOSAKI) about 13 years ago
- Status changed from Assigned to Closed
This issue was solved with changeset r33436.
saber, thank you for reporting this issue.
Your contribution to Ruby is greatly appreciated.
May Ruby be with you.
merge revision(s) 33363:
* array.c (ary_join_1): should not copy the encoding of non-string
element after string element. [ruby-core:39776] [Bug #5379]
Updated by kosaki (Motohiro KOSAKI) about 13 years ago
OK, this is regression.
r33436 and r33437.