From: "Eregon (Benoit Daloze) via ruby-core" <ruby-core@...>
Date: 2024-01-22T10:15:20+00:00
Subject: [ruby-core:116363] [Ruby master Feature#18576] Rename `ASCII-8BIT` encoding to `BINARY`

Issue #18576 has been updated by Eregon (Benoit Daloze).





I think for that last example, omitting `ASCII-8BIT` would be much clearer, also two sets of parens seems too much.

So:

```

(irb):8:in `+': incompatible character encodings: UTF-8 and BINARY (Encoding::CompatibilityError)

```

Otherwise we would likely still have the confusion that "ASCII" is not compatible with UTF-8 (which is untrue of course).



----------------------------------------

Feature #18576: Rename `ASCII-8BIT` encoding to `BINARY`

https://bugs.ruby-lang.org/issues/18576#change-106383



* Author: byroot (Jean Boussier)

* Status: Open

* Priority: Normal

* Target version: 3.4

----------------------------------------

### Context



I'm now used to it, but something that confused me for years was errors such as:



```ruby

>> "f�e" + "\xFF".b

(irb):3:in `+': incompatible character encodings: UTF-8 and ASCII-8BIT (Encoding::CompatibilityError)

```



When you aren't that familiar with Ruby, it's really not evident that `ASCII-8BIT` basically means "no encoding" or "binary".



And even when you know it, if you don't read carefully it's very easily confused with `US-ASCII`.



The `Encoding::BINARY` alias is much more telling IMHO.



### Proposal



Since `Encoding::ASCII_8BIT` has been aliased as `Encoding::BINARY` for years, I think renaming it to `BINARY` and then making asking `ASCII_8BIT` the alias would significantly improve usability without backward compatibility concerns.



The only concern I could see would be the consistency with a handful of C API functions:



  - `rb_encoding *rb_ascii8bit_encoding(void)`

  - `int rb_ascii8bit_encindex(void)`

  - `VALUE rb_io_ascii8bit_binmode(VALUE io)`



But that's for much more advanced users, so I don't think it's much of a concern.









-- 

https://bugs.ruby-lang.org/

 ______________________________________________
 ruby-core mailing list -- ruby-core@ml.ruby-lang.org
 To unsubscribe send an email to ruby-core-leave@ml.ruby-lang.org
 ruby-core info -- https://ml.ruby-lang.org/mailman3/postorius/lists/ruby-core.ml.ruby-lang.org/