Skip to content
  • Kevin Falcone's avatar
    Instead of the flimsy utf8 encoding, use UTF-8 and fix bogus data. · 82403d5a
    Kevin Falcone authored
    Old versions of RT (especially those running on MySQL) were happy to pass
    garbage into MySQL and it was stored there, lurking, waiting for you to
    retrieve it.  If you do retrieve it and then try to treat it like UTF-8
    data (say by passing it to another system that strictly handles UTF-8
    such as PostgreSQL) it will be rejected vigorously.
    
    This converts from
    
    Encode::decode('utf8','string');
    which doesn't check the content and converts to perl's internal utf8.
    
    Encode::decode('UTF-8','string',Encode::PERLQQ);
    which converts to actual UTF-8 strings and will apply the PERLQQ filter
    documented in the Encode docs under Handling Malformed Data.
    
    This is similar to what we now do to all Web UI input in
    RT::Interface::Web::DecodeArgs
    82403d5a