The problem with you pasting the data here inside the code tags, does not reflect the binary compatibility of your actual data.
If I download this snippet, the code works fine:
$ cat test.csv
https://www.ibm.com/support/knowledgecenter/es/search/�Cuales s
+on las partes de una cadena de conexi�n??scope=SSGU8G_12.1.0|h
+ttps://www.ibm.com/support/knowledgecenter/es/SSGU8G_12.1.0/com.ibm.j
+dbc_pg.doc/ids_jdbc_011.htm|0|1|1|0
https://www.ibm.com/support/knowledgecenter/search/onsmsync?scope=SSGU
+8G_12.1.0|https://www.ibm.com/support/knowledgecenter/SSGU8G_12.1.0/c
+om.ibm.sec.doc/ids_lb_002.htm|1|1|1|1
$ perl -CEO -MData::Peek -MText::CSV_XS -wE'my$c=Text::CSV_XS->new({se
+p_char=>"|",auto_diag=>1,binary=>1});while(<>){$c->parse($_);DPeek fo
+r$c->fields}' test.csv
PV("https://www.ibm.com/support/knowledgecenter/es/search/\277Cuales s
+on las partes de una cadena de conexi\363n??scope=SSGU8G_12.1"...\0)
PV("https://www.ibm.com/support/knowledgecenter/es/SSGU8G_12.1.0/com.i
+bm.jdbc_pg.doc/ids_jdbc_011.htm"\0)
PV("0"\0)
PV("1"\0)
PV("1"\0)
PV("0"\0)
PV("https://www.ibm.com/support/knowledgecenter/search/onsmsync?scope=
+SSGU8G_12.1.0"\0)
PV("https://www.ibm.com/support/knowledgecenter/SSGU8G_12.1.0/com.ibm.
+sec.doc/ids_lb_002.htm"\0)
PV("1"\0)
PV("1"\0)
PV("1"\0)
PV("1"\0)
The *output* is, as you could see, iso-8859-1 (latin1) instead of your expected utf-8, because the source data is iso-8859-1 (or a variety thereof) and does not require an upgrade to utf-8.
You can however make the data utf-8 by decoding your source data:
$ perl -CEO -MEncode=decode -MData::Peek -MText::CSV_XS -wE'my$c=Text:
+:CSV_XS->new({sep_char=>"|",auto_diag=>1,binary=>1});while(<>){$c->pa
+rse(decode("utf-8",$_));DPeek for$c->fields}' test.csv
PV("https://www.ibm.com/support/knowledgecenter/es/search/\357\277\275
+Cuales son las partes de una cadena de conexi\357\277\275n??s"...\0)
+[UTF8 "https://www.ibm.com/support/knowledgecenter/es/search/\x{fffd}
+Cuales son las partes de una cadena de conexi\x{fffd}n??scope=SSGU8G_
+12.1.0"]
PV("https://www.ibm.com/support/knowledgecenter/es/SSGU8G_12.1.0/com.i
+bm.jdbc_pg.doc/ids_jdbc_011.htm"\0)
PV("0"\0)
PV("1"\0)
PV("1"\0)
PV("0"\0)
PV("https://www.ibm.com/support/knowledgecenter/search/onsmsync?scope=
+SSGU8G_12.1.0"\0)
PV("https://www.ibm.com/support/knowledgecenter/SSGU8G_12.1.0/com.ibm.
+sec.doc/ids_lb_002.htm"\0)
PV("1"\0)
PV("1"\0)
PV("1"\0)
PV("1"\0)
Note that Text::CSV_XS *only* decodes to utf-8 if it needs to or is explicitly told to: it needs to be able to deal with pure binary data.
Enjoy, Have FUN! H.Merijn
|