in reply to Re^4: How to know to know if string is utf8 encoded or decoded.
in thread How to know to know if string is utf8 encoded or decoded.

No, it should not utf8 there.
Thank you

  • Comment on Re^5: How to know to know if string is utf8 encoded or decoded.

Replies are listed 'Best First'.
Re^6: How to know to know if string is utf8 encoded or decoded.
by 1nickt (Canon) on Jul 26, 2019 at 13:42 UTC

    I don't understand. Why do you think that Encode::decode('MIME-Header',$str) is going to do anything useful?

    $ perl -Mstrict -MEncode -wE 'my $str="foo"; say encode("MIME-Header", + $str);' =?UTF-8?B?Zm9v?=


    The way forward always starts with a minimal test.

      Thank you for the reply.
      That is existing code. basically the logic behind the code is, if filename is utf8 encoded then return the string as it is but if it is not then decode it using encode::decode.

      for filename "test1℗ὓ.txt" there is not need to decode at all but with filename "1669-SCC-HôpitauxdeSaint-Maurice-POC.PIF", it is not working with or without decode. when I say not working it is not getting decoded properly so that file is not getting attached.

        You have already been given your answers; I am sorry you are struggling to hear them. choroba showed that the strings can be decoded fine, and I explained that you are using a bad value for the encoding.


        #!/usr/bin/perl
        use strict;
        use warnings;
        use feature 'say';
        use utf8;
        
        use Encode;
        
        my $str = '1669-SCC-HôpitauxdeSaint-Maurice-POC.PIF';
        
        say 'UTF-8: ' . encode('UTF-8', $str);
        say 'MIME-Header: ' . encode('MIME-Header', $str);
        
        $str = 'test1℗ὓ.txt';
        
        say 'UTF-8: ' . encode('UTF-8', $str);
        say 'MIME-Header: ' . encode('MIME-Header', $str);
        
        __END__
        

        $ perl foo.pl
        UTF-8: 1669-SCC-HôpitauxdeSaint-Maurice-POC.PIF
        MIME-Header: =?UTF-8?B?MTY2OS1TQ0MtSMO0cGl0YXV4ZGVTYWludC1NYXVyaWNlLVBPQy5QSUY=?=
        UTF-8: test1℗ὓ.txt
        MIME-Header: =?UTF-8?B?dGVzdDHihJfhvZMudHh0?=
        


        The way forward always starts with a minimal test.