Backport #5379

the join method of array return different encoding result

Added by saber ma over 2 years ago. Updated over 2 years ago.

[ruby-core:39776]
Status:Closed
Priority:Normal
Assignee:Yuki Sonoda

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
=> "中文"

Associated revisions

Revision 33436
Added by Motohiro KOSAKI over 2 years ago

merge revision(s) 33363:

* array.c (ary_join_1): should not copy the encoding of non-string
  element after string element.   [Bug #5379]

History

#1 Updated by Nobuyoshi Nakada over 2 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 (aryjoin1): should not copy the encoding of non-string element after string element. [Bug #5379]

#2 Updated by Nobuyoshi Nakada over 2 years ago

  • Tracker changed from Bug to Backport
  • Project changed from ruby-trunk to Backport93
  • Status changed from Closed to Assigned
  • Assignee set to Yuki Sonoda
  • Target version deleted (1.9.3)

#3 Updated by Yui NARUSE over 2 years ago

Please backport it with r33364.

#4 Updated by Motohiro KOSAKI over 2 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.   [Bug #5379]

#5 Updated by Motohiro KOSAKI over 2 years ago

OK, this is regression.
r33436 and r33437.

Also available in: Atom PDF