РЕДАКТИРОВАТЬ: не отвечать; Я нашел решение самостоятельно.
У меня есть код, который делает это:
using (var stream = new FileStream(args[1], FileMode.Create))
{
using (var writer = new BinaryWriter(stream))
{
writer.Write(ip.Iso3166CountryCode);
...
}
}
Iso3166CountryCode
- это string
с двумя символами («США»).
Когда я пытаюсь прочитать «US» из файла:
// line is a byte[] from the file with the first 1024 bytes
UnicodeEncoding.Default.GetString(line.Take(2).ToArray());
Я не получаю "US" назад, я возвращаю некоторые странные символы ASCII. Как мне прочитать два символа кода страны из этого двоичного файла?
РЕДАКТИРОВАТЬ: НИКОГДА НЕ УМ. Я изменил writer.Write(ip.Iso3166CountryCode)
на writer.Write(UnicodeEncoding.Default.GetBytes(ip.Iso3166CountryCode))
, и это работает.