Actions
Bug #7168
closedFile.join trips over string encodings
    Bug #7168:
    File.join trips over string encodings
  
Status:
Closed
Assignee:
-
Target version:
-
ruby -v:
ruby 1.9.3p125 (2012-02-16 revision 34643) [x86_64-darwin11.3.0]
Backport:
Description
It seems like File.join is unable to handle string encodings that contain null bytes even though the string is properly encoded. This causes it to be unable to process inputs when the filenames on the system are encoded in this manner.
From an irb session:
1.9.3p125 :013 > File.join("a".encode("UTF-16LE")).encoding
 => #<Encoding:UTF-16LE> 
1.9.3p125 :014 > File.join("a".encode("UTF-16LE"), "".encode("UTF-16LE"))
ArgumentError: string contains null byte
from (irb):14:in `join'
from (irb):14
from /Users/andy/.rvm/rubies/ruby-1.9.3-p125/bin/irb:16:in `<main>'
I would expect the second command in that session to return "a/" just like File.join("a", "") does, but with the UTF-16LE encoding.
See https://groups.google.com/forum/?hl=en&fromgroups=#!topic/puppet-dev/C1YODJxd9Ws for where this came from.
Actions