.net supports two different characters, both of which (usually) appear as § :
char c1 = (char)21; char c2 = (char)167; Console.WriteLine(c1 == c2); // prints false Console.WriteLine(c1); // prints § Console.WriteLine(c2); // prints §
Character 21 is a special control character that is displayed as § when exiting in text mode.
CP437 allows you to interpret 21 as either a control character or a literal § . Apparently, GetString decides to interpret it as a control character (which is a perfectly valid option) and thus maps it to a Unicode 21 control character, not a Unicode § literal.
Heinzi
source share