module Net::BER::Extensions::String

def raw_utf8_encoded

def raw_utf8_encoded
  if self.respond_to?(:encode)
    # Strings should be UTF-8 encoded according to LDAP.
    # However, the BER code is not necessarily valid UTF-8
    begin
      self.encode('UTF-8').force_encoding('ASCII-8BIT')
    rescue Encoding::UndefinedConversionError
      self
    rescue Encoding::ConverterNotFoundError
      self
    rescue Encoding::InvalidByteSequenceError
      self
    end
  else
    self
  end
end