$ldqm=encode('UTF-8', #internal char to utf-8 bytes decode('Windows-1252', #This expects Windows-1252 bytes but utf-8 bytes passed from outer encode encode('UTF-8',$ldgm))); #here internal char to UTF-8bytes #### my $buff=encode('UTF-8',$ldgm); #internal char to utf-8 bytes from_to($buff, 'UTF-8', 'Windows-1252'); #now buff converted into 1252 bytes $buff=decode('Windows-1252', $buff); #1252 bytes converted into internal char print 'ret=' . encode('UTF-8', $buff); #encode into UTF8 bytes and print