Skip to content
instance method

String#force_encoding

(::encoding enc) -> self
force_encoding(encoding) → self

Changes the encoding of self to the given encoding, which may be a string encoding name or an Encoding object; does not change the underlying bytes; returns self:

Example
s = 'łał'
s.bytes                   # => [197, 130, 97, 197, 130]
s.encoding                # => #<Encoding:UTF-8>
s.force_encoding('ascii') # => "\xC5\x82a\xC5\x82"
s.encoding                # => #<Encoding:US-ASCII>
s.valid_encoding?         # => true
s.bytes                   # => [197, 130, 97, 197, 130]

Makes the change even if the given encoding is invalid for self (as is the change above):

Example
s.valid_encoding?         # => false

See Encodings.

Related: see Modifying.

See also #eql? #getbyte #end_with? #grapheme_clusters also in 4.1 · 3.4 · 3.3 · 3.2 · 3.1 · 3.0