From: jean.boussier@... Date: 2020-07-05T10:44:44+00:00 Subject: [ruby-core:99065] [Ruby master Bug#17011] BigDecimal .to_s should not use ASCII-8BIT Issue #17011 has been updated by byroot (Jean Boussier). Sure. ---------------------------------------- Bug #17011: BigDecimal .to_s should not use ASCII-8BIT https://bugs.ruby-lang.org/issues/17011#change-86438 * Author: david.drakard (David Drakard) * Status: Open * Priority: Normal * ruby -v: ruby 2.5.1p57 (2018-03-29 revision 63029) [x86_64-linux-gnu] * Backport: 2.5: UNKNOWN, 2.6: UNKNOWN, 2.7: UNKNOWN ---------------------------------------- `BigDecimal#to_s` returns a `String` in ASCII-8BIT encoding. This is inconvenient in situations where the encoding determines program behaviour, since ASCII-8BIT is a special encoding that implies binary (non-textual) data, it can require an explicit conversion. `BigDecimal#to_s` should either use the currently active encoding, or it should use US-ASCII like `Integer#to_s`. Recreation script: ``` ruby # encoding: utf-8 Encoding.default_internal = Encoding::UTF_8 Encoding.default_external = Encoding::UTF_8 require 'bigdecimal' puts BigDecimal('2').to_s.encoding ``` Desired output: `US-ASCII` or `UTF-8` Actual output: `ASCII-8BIT` -- https://bugs.ruby-lang.org/ Unsubscribe: