Hello Jim.
I wonder this is your intentional emulation or, in case you don't notice...
The second decode is really strange. I would like to use terms, "internal char" and "bytes".
Second decode expects Windows-1252 bytes but it receives UTF-8 bytes.
$ldqm=encode('UTF-8', #internal char to utf-8 bytes
decode('Windows-1252', #This expects Windows-1252 bytes b
+ut utf-8 bytes passed from outer encode
encode('UTF-8',$ldgm))); #here internal char to UTF-8bytes
So, how about using from_to, bytes to bytes conversion?
my $buff=encode('UTF-8',$ldgm); #internal char to utf-8
+ bytes
from_to($buff, 'UTF-8', 'Windows-1252'); #now buff converted i
+nto 1252 bytes
$buff=decode('Windows-1252', $buff); #1252 bytes converted
+into internal char
print 'ret=' . encode('UTF-8', $buff); #encode into UTF8 by
+tes and print
regards