in reply to Re^3: XLSX to CSV with high ASCII characters
in thread XLSX to CSV with high ASCII characters

Excel shows Nicholás properly, as does the CSV/text output of xls2csv. But my script, and your test script, both create output with á as á

And, if I open bar.csv in Excel, I get Nicolás

$ cat bar.pl #!/usr/bin/perl use strict; use Text::CSV; my $outputFile = 'bar.csv'; my $csv = Text::CSV->new ( { binary => 1, eol => "\n" } ) or die "Cannot use CSV: ".Text::CSV->error_diag (); open my $fh, ">:encoding(utf8)", $outputFile or die "$outputFile: $!"; $csv->print ($fh, ['Nicolás',123]); close $fh or die "$outputFile: $!"; $ cat bar.csv Nicolás,123

Replies are listed 'Best First'.
Re^5: XLSX to CSV with high ASCII characters
by 1nickt (Canon) on Aug 26, 2017 at 21:10 UTC

    I cannot speak to your script as I don't know what's in the input file. But poj's script needs

    use utf8;

    at the top in order to tell Perl that the content of the source code is encoded as UTF-8. This causes the high character to be read correctly, and the remainder of the script to work as expected.

    Note that you will have to consider whether your terminal is set to display UTF-8 when viewing the contents of the output file.

    The way forward always starts with a minimal test.

      Adding "use utf8" to poj's script does help. I did try that with mine, but no help.

      My test input file is:

      ID	Last	First	Pref
      1	Peña	Nicolás	
      2	Jones	John	Jack
      3	D’Angelo	Michael	
      4	Smith	Jane	Janey
      and the output is:
      Pref,Last,Static,Text
      Nicolás,Peña,Static,Text
      Jack,Jones,Static,Text
      Michael,"D’Angelo",Static,Text
      Janey,Smith,Static,Text