Beefy Boxes and Bandwidth Generously Provided by pair Networks
Come for the quick hacks, stay for the epiphanies.
 
PerlMonks  

Re: U-DOS to DOS file conversion

by ikegami (Patriarch)
on Jun 16, 2010 at 23:11 UTC ( [id://845121]=note: print w/replies, xml ) Need Help??


in reply to U-DOS to DOS file conversion

under TextWrangler it shows as UTF-16 EL

Then it's probably UCS-2le or UTF-16le. (The latter is a superset of the former.)

I am trying to convert it to DOS format using Perl.

Most people would consider "DOS format" to mean encoded using their machine's "ANSI" encoding and using CRLF for line endings.

In the Western world, the "ANSI" encoding is usually Windows-1252 aka cp1252.

perl -pe"BEGIN { binmode STDIN, ':encoding(UTF-16le)'; binmode STDOUT, + ':encoding(cp1252)'; }" < file.wide > file.ansi

Update:

The :crlf layer ends up in the incorrect order. That's not a problem with ASCII-derived encodings, but it is with UTF-16le. You actually need to use a workaround like

# wide_to_ansi.pl file.wide file.ansi @ARGV == 2 or die("Incorrect usage\n"); open(my $fh_in, '<:raw:perlio:encoding(UTF-16le):crlf', $ARGV[0]) or die("Cannot open input file \"$ARGV[0]\": $!\n"); open(my $fh_out, '>:raw:perlio:encoding(cp1252):crlf', $ARGV[1]) or die("Cannot create output file \"$ARGV[1]\": $!\n"); print($fh_out $_) while <$fh_in>;

Replies are listed 'Best First'.
Re^2: U-DOS to DOS file conversion
by mmittiga17 (Scribe) on Jun 17, 2010 at 01:13 UTC

    Thank you so much ikegami. That solved my problem and know I know.

Re^2: U-DOS to DOS file conversion
by Anonymous Monk on Dec 03, 2013 at 06:10 UTC

    how to detect the file format whether it is U-DOS or DOS format via perl code

      If you mean UTF-16le by "U-DOS", you can check for the presence of 00 bytes. Each ASCII character will be encoded in the form xx 00.

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://845121]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others having a coffee break in the Monastery: (6)
As of 2024-03-28 11:02 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found