in reply to Decoding bad UTF-16

Use Encode::decode to decode your text. The third argument to decode() determines what happens when a mal-formed character is to be converted.