Changes the encoding of +self+ to +encoding+, which may be a string encoding name or an Encoding object; returns self: s = 'łał' s.bytes # => [197, 130, 97, 197, 130] s.encoding # => # s.force_encoding('ascii') # => "\xC5\x82a\xC5\x82" s.encoding # => # Does not change the underlying bytes: s.bytes # => [197, 130, 97, 197, 130] Makes the change even if the given +encoding+ is invalid for +self+ (as is the change above): s.valid_encoding? # => false s.force_encoding(Encoding::UTF_8) # => "łał" s.valid_encoding? # => true