This week I helped out my Business Intelligence colleagues again.
After tackling another problem with a regular expression, the end result contained strange characters. In the output below there is a question mark icon where the Pound (£) sign used to be.
"Whatever returned, � 35.00 debited";3;1;"";0;0
The problem is that the system where the code executes uses a different code page. This messes with the encoding. To solve this we used the Enconding.Default as parameter when reading or writing the text file.
string input = File.ReadAllText(sourceFile, Encoding.Default); // pattern removed for simplicity string output = Regex.Replace(input, pattern, " "); File.WriteAllText(destinationFile, output, Encoding.Default);