if (c < csv->first_safe_char || (c >= 0x7f && c <= 0xa0) ||
(csv->quote_char && c == csv->quote_char) ||
(csv->sep_char && c == csv->sep_char) ||
(csv->escape_char && c == csv->escape_char)) {
/* Binary character */
break;
}
####
if (c < csv->first_safe_char || (csv->quote_binary && c >= 0x7f && c <= 0xa0) ||
(csv->quote_char && c == csv->quote_char) ||
(csv->sep_char && c == csv->sep_char) ||
(csv->escape_char && c == csv->escape_char)) {
/* Binary character */
break;
}
##
##
Text-CSV_XS $ cat test.pl
use strict;
use warnings;
binmode STDOUT, ":utf8";
use Text::CSV_XS;
my $csv = Text::CSV_XS->new ({ binary => 1, auto_diag => 1, eol => "\n" });
$csv->quote_binary (1); # default
$csv->print (*STDOUT, [ undef, "", " ", 1, "a b ", "\x{20ac}" ]);
$csv->quote_binary (0);
$csv->print (*STDOUT, [ undef, "", " ", 1, "a b ", "\x{20ac}" ]);
Text-CSV_XS $ perl -Iblib/{lib,arch} test.pl
,," ",1,"a b ","€"
,," ",1,"a b ",€
Text-CSV_XS $