From: magynhard Date: 2022-06-27T14:46:16+00:00 Subject: [ruby-core:109071] [Ruby master Bug#18882] File.read cuts off a text file with special characters when reading it on MS Windows Issue #18882 has been updated by magynhard (Matth��us Johannes Beyrle). alanwu (Alan Wu) wrote in #note-5: > `File.read` (actually `IO.read`) interprets the file based on the > external encoding, which is a function of the platform and the environment. > If you put a `p [content.encoding, ::Encoding.default_external]` in your script > I think you should see a difference between the Windows Ruby and WSL Ruby. > > Assuming that's the problem, I don't know how one could issue a warning for it > because Ruby can't know if the external encoding matches user expectation. > We could potentially improve the docs, though. Added it to the script, both have the same output in this case: ``` [#, #] ``` But as @alanwu stated, there is a 0x1A charachter (26, = CTRL+Z) inside the javascript file, which is interpreted as end of file on text mode on windows: https://stackoverflow.com/a/230878/11205329 Might be nice if File.read would use binary mode by default, but that would be a breaking change. So extending the documentation might be the better choice. Or do you think that there is a smart way to throw an error in cases, where a 0x1A character is included and therefore the read file is incomplete? ---------------------------------------- Bug #18882: File.read cuts off a text file with special characters when reading it on MS Windows https://bugs.ruby-lang.org/issues/18882#change-98215 * Author: magynhard (Matth��us Johannes Beyrle) * Status: Open * Priority: Normal * ruby -v: ruby 3.1.2p20 (2022-04-12 revision 4491bb740a) [x64-mingw-ucrt] * Backport: 2.7: UNKNOWN, 3.0: UNKNOWN, 3.1: UNKNOWN ---------------------------------------- When using File.read to read a text file (in this case a javascript file) with special characters, the content is cut off at special characters. It occurs only when running ruby on Windows, tried several versions, including the latest. Does not occur on Linux or WSL (Windows Subsystem for Linux). I created a github repo including a test script and the source file as the result inside a file as well: https://github.com/grob-net4industry/ruby_win_file_bug ---Files-------------------------------- copy_pdfmake.min.js (582 KB) pdfmake.min.js (1.29 MB) diff.png (55.9 KB) -- https://bugs.ruby-lang.org/ Unsubscribe: