Project

General

Profile

Actions

Feature #18576

open

Rename `ASCII-8BIT` encoding to `BINARY`

Added by byroot (Jean Boussier) about 2 years ago. Updated about 1 month ago.

Status:
Open
Assignee:
-
Target version:
[ruby-core:107514]

Description

Context

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

>> "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.

Actions

Also available in: Atom PDF

Like2
Like0Like0Like0Like0Like0Like0Like0Like0Like0Like0Like0Like1Like0Like0Like0Like0Like0Like0Like0Like0Like0Like0Like0Like0Like0Like0Like0Like1Like1Like1Like1Like0Like0Like0Like0Like0Like0Like0Like1Like0Like0Like0Like0Like0Like0