Доходило долго, но я справился.
Внутри строки в нынешнем шарпе хранятся в utf-16, а в консоли - в utf-8.
чтобы работало, надо указать явно кодировку utf-16:
Console.InputEncoding = System.Text.Encoding.GetEncoding("utf-16");
Console.WriteLine("Hello, World!");
var ans = Console.ReadLine();
Console.WriteLine(ans);
Может, кому пригодится.