Issue #13532 has been updated by shyouhei (Shyouhei Urabe). Status changed from Open to Assigned Assignee set to akr (Akira Tanaka) FYI bare (non-uri) open has encoding: option. ``` irb(main):001:0> File.open("tmp.txt", encoding: Encoding::Windows_31J) {|fp| fp.external_encoding } => #<Encoding:Windows-31J> ``` ---------------------------------------- Feature #13532: Enable :encoding key or open-uri (open()) similar as to how File.read() and File.readlines() already allow for https://bugs.ruby-lang.org/issues/13532#change-64631 * Author: shevegen (Robert A. Heiler) * Status: Assigned * Priority: Normal * Assignee: akr (Akira Tanaka) * Target version: ---------------------------------------- Hello ruby core team and everyone else. I lately had some odd behaviour and mixing of Encodings in my scripts. I had a better look and realized that open-uri would return UTF-8 whereas my other scripts would use another encoding. So far so good, no big deal, I can just change the encoding. But I was not aware of this. I then looked at the documentation and found it to be lacking: https://ruby-doc.org/stdlib-2.4.1/libdoc/open-uri/rdoc/OpenURI.html Compare this to File.readlines(): https://ruby-doc.org/core-2.4.1/IO.html#method-c-readlines File.readlines() also tells you how many arguments can be passed. (1) So my first suggestion is - could some kind soul please also enable this for open-uri? The major reason for me filing this feature request, is about encoding support though, via open-uri. File.open() and File.readlines() both allow an :encoding key to be passed. This is very nifty, I use it a lot and it works very well. open-uri or rather its open() functionality, allows you to pass in a Hash but this Hash has no :encoding key. Example: open("http://www.ruby-lang.org/", encoding: 'ISO-8859-1') Error: ArgumentError: unrecognized option: encoding Could this perhaps be added for symmetry and consistency, so that open() from open-uri will behave like File.read() and File.readlines() would? E. g. an example for the latter would be. File.readlines('foobar.rb', :encoding => 'ISO-8859-1') The very same syntax could also be used for open() of open-uri. Thanks for reading! -- https://bugs.ruby-lang.org/ Unsubscribe: <mailto:ruby-core-request / ruby-lang.org?subject=unsubscribe> <http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-core>