encode!

in lib/gitlab_git/encoding_helper.rb [14:36]


  def encode!(message)
    return nil unless message.respond_to? :force_encoding

    
    message.force_encoding("UTF-8")
    return message if message.valid_encoding?

    
    detect = CharlockHolmes::EncodingDetector.detect(message)
    return message.force_encoding("BINARY") if detect && detect[:type] == :binary

    
    if detect && detect[:encoding] && detect[:confidence] > ENCODING_CONFIDENCE_THRESHOLD
      message.force_encoding(detect[:encoding])
    end

    
    message.replace clean(message)
  rescue
    encoding = detect ? detect[:encoding] : "unknown"
    "--broken encoding: #{encoding}"
  end