Bug #17011
Updated by david.drakard (David Drakard) almost 4 years ago
`BigDecimal` `.to_s` returns a `String` in ASCII-8BIT encoding. This is inconvenient in situations where the encoding determines program behaviour, since because it requires an explicit cast, particularly because ASCII-8BIT is a special encoding that implies binary (non-textual) data, it can require an explicit conversion. data. `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`