Actions
Bug #13959
closedIO.write(filename, Marshal.dump(obj), :encoding => 'binary') != File.open(filename, 'wb') { |fil| Marshal.dump(obj, fil) }
Status:
Rejected
Assignee:
-
Target version:
-
ruby -v:
ruby 2.4.2p198 (2017-09-14 revision 59899) [x64-mingw32]
Backport:
Description
For some complex objects,
IO.write(filename, Marshal.dump(obj), :encoding => 'binary') and File.open(filename, 'wb') { |fil| Marshal.dump(obj, fil) }
can create different file content, and these files can't load each other by
Marshal.load(IO.read(filename, :encoding => 'binary')) and File.open(filename, 'rb') { |fil| return Marshal.load(fil) }
Detail is in the attached.
Files
Updated by nobu (Nobuyoshi Nakada) about 7 years ago
- Status changed from Open to Rejected
:encoding => 'binary'
does not set binmode, but just makes the result encoding ASCII-8bit.
Use IO.binread
and IO.binwrite
to read/write binary data.
Actions
Like0
Like0