I think I understand the problem to some extent.

The final character is 0x0439, and the last byte is 0x39, which is the same as the single-quote character.  I don't know where, but my guess is that some cleaning code is stripping out that quote.

What I don't understand is why it should fail on Windows but not on Linux.  I did confirm that XP can take the troublesome string and convert it to UCS2 and back to UTF8 without any loss, so that isn't the problem.