jrvd has asked for the wisdom of the Perl Monks concerning the following question:

Hello monks!

Edit: I found the solution. I needed to use '>:raw:encoding(UTF-16)' ;)

So I am building a text file that will be imported with a bulk insert into SQL Server. However, since I am using french langage characters, I need the file to be encoded in UTF-16.

Here is what I am doing (this isn't the entire code, just the relevant parts):

my $fileDest = "hostsfile_modified.txt"; die "Problème de création du fichier $fileDest" unless open(my $fd, '> +:encoding(UTF-16)', $fileDest); my $line = ""; #I build my $line... print $fd $line."\n"; close $fd;

Once this is done however, my output document looks something like this:
10.10.10.70;VL-CX-RP002;RP;CX;SRIP-R;Internet (TPIA)
਀㄀ ⸀㄀㔀㐀⸀㈀⸀㐀㬀嘀䰀ⴀ儀䈀䌀刀ⴀ匀圀  ㄀㬀匀圀㬀儀䈀䌀刀㬀匀刀䤀倀ⴀ刀㬀嘀匀䐀⼀匀䐀嘀ഊ10.154.10.53;VL-VTTV-SW001;SW;VTTV;SRIP-R;VSD/SDV
਀㄀ ⸀㄀ ⸀㈀㐀⸀㤀㜀㬀嘀䰀ⴀ䴀匀ⴀ䔀儀 ㌀㄀㬀䔀儀㬀䴀匀㬀匀刀䤀倀ⴀ䄀㬀ഊ10.10.20.52;VL-MS-EQ033;EQ;MS;SRIP-A;
਀㄀ ⸀㄀ ⸀㈀㐀⸀㤀㠀㬀嘀䰀ⴀ䴀匀ⴀ䔀儀㄀㌀㄀㬀䔀儀㬀䴀匀㬀匀刀䤀倀ⴀ䄀㬀ഊ10.10.20.53;VL-MS-EQ133;EQ;MS;SRIP-A;
...

I realize that the problem seems to be the new line character however I am not sure what the solution is. Thanks for your help!

jrvd

Replies are listed 'Best First'.
Re: UTF 16 encoding problems
by Jim (Curate) on Jul 06, 2013 at 01:18 UTC