I've been bitten by this before. Encoding.Default uses the default
So what code points looks good in both CP-1252 and UTF-8 but
not in CP-12xx with xx != 52 ?
I don't know without doing more research than I'm willing to do right now.
But what you could do (what I would do) is regenerate the file while reading
it against your original Encoding.Default, and write out the file into the
new encoding and keep a copy. Then do it again, but reading it as UTF8 and
write it out using the new encoding, and then compare the two files at a
binary level and see which bytes are different. Then you'll know what
characters were different (if it wasn't blatantly obvious already).
In my case, I have no idea what his default OS-level encoding was, but the
only characters that were encoded incocrrectly when I converted to UTF8 was
the angled single and the double quote, as well as the © (copyright) and ™
(upper TradeMark). No other characters where different. The © (copyright
circle-C) came out looking like the A with a curve over it and two dots. I
fixed it by reading it in as UTF-8 and outputting it as UTF-16. But if I
took his binary and ran it on my machine, it produced the correct CP-1262
(windows-1252) and I didn't have that problem.
All I'm saying is the differences are subtle, and may only be manifest when
using a character above 127 (such as the angled quotes and other special
non-ASCII characters). To see what those would be on your workstation, I'd
do a binary compare of the two outputs and then once identified the
incorrect characters, then try to determine what CP they are and thus, what
encoding.