Hello Balawoo,
I admit that I'm having some difficulties relating your attempts to my recommendations.
If you change the format to XSLX files, then there'll be no more MacRoman encoding: All strings in XLSX files are formatted in UTF-8. Furthermore, you don't need to decode anything, because Spreadsheet::ParseXSLX will do that for you. So, you've found another way to get rid of that problem.
Your method to create the text file in UTF-8 (encoding the individual cells and then write with Perl's default encoding) sort of works, but I would really recommend that you open the file for UTF-8 encoding like this:
open (TXT, ">:encoding(UTF-8)", $txt) || die("Could not open file! $txt");Of course, you need to read this file as UTF-8 as well:
open (SOURCE, "<:encoding(UTF-8)", $txt) || die ("Could not open file! $txt");You still haven't convinced me that you need to encode accents like é to é. If you write é to a XML file, you get an invalid XML file. If you want to have the string é as literal content of the XML element, then you need to encode twice: Once to convert é to é, and a second time (use encode_entities without a second parameter for this) to convert the & character to &. In the XML file you'll then see &eacute, but an XML processor will read it as é. Note that you still need to get the use utf8; thing right if you want to pass your string literal as a second parameter to encode_entities.
In reply to Re^5: Help encode_entities doesn't seem to work
by haj
in thread [SOLVED] -Help encode_entities doesn't seem to work
by Balawoo
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |