Here’s a great time to use a command-line tool like hexedit (or a programmer’s file-editor) to look at what are the actual bytes in both the input and the output files. Armed with this information, it ought to be clear how to change the program to suit. Without it, you are frankly going to be shooting in the dark. The mere appearance of a square-box on the terminal screen merely indicates that the font-renderer did not know how to decode this particular byte-sequence into a graphic, given all sorts of parameters (including operating-system “locale” settings) that control such things. To resolve issues like this, you need to look at the bytes.
Perl, like all languages, has various settings to let it deal with things like Unicode, but sometimes you have to specify those things because the language cannot [always ...] know by examination of the data what the right way to deal with character-data is. The same thing of course is true of end-of-line markers even in ASCII text. Once you see the bytes, you should be able to deduce what to do ... and of course, we’ll be happy to help you. Feel free to post a few hex-dump lines here, if you like.