As your code reveals, you're not actually dealing with UTF-16 data and it appears you would benefit from reading
perluniintro. Specifically, take a look at how to include utf8 data in your perl program (
use utf8, see
utf8), how to include Unicode characters for code points above 0xFF (
$string = "\x{1ECB}" is the 'i' with a dot, see:
Creating Unicode) and changing the encoding of a filehandle (
binmode(OUT,':utf8'), see
Unicode I/O).
Unicode is a difficult animal to tackle. I've been dealing with it for the last couple of years and I'm just now feeling like I have a handle on it. I've found the chapter on Unicode in the second edition of
Advanced Perl Programming very helpful.
-- Brian