C# .NET:读取/写入二进制字符串

C# .NET:读取/写入二进制字符串,c#,encoding,ascii,character,C#,Encoding,Ascii,Character,编辑:不回答;我自己找到了解决方案。 我有一些代码可以做到这一点: using (var stream = new FileStream(args[1], FileMode.Create)) { using (var writer = new BinaryWriter(stream)) { writer.Write(ip.Iso3166CountryCode); ... } } Iso3166CountryCode是一个带有两个字符(“US”)的字符串 当我试图从文件中读取“我们

编辑:不回答;我自己找到了解决方案。

我有一些代码可以做到这一点:

using (var stream = new FileStream(args[1], FileMode.Create))
{
 using (var writer = new BinaryWriter(stream))
 {
  writer.Write(ip.Iso3166CountryCode);
  ...
 }
}
Iso3166CountryCode
是一个带有两个字符(“US”)的
字符串

当我试图从文件中读取“我们”时:

// line is a byte[] from the file with the first 1024 bytes
UnicodeEncoding.Default.GetString(line.Take(2).ToArray());
我没有找回“我们”,我找回了一些奇怪的ASCII字符。如何从这个二进制文件中读取两个国家代码字符


编辑:没关系。我将
writer.Write(ip.Iso3166CountryCode)
更改为
writer.Write(UnicodeCode.Default.GetBytes(ip.Iso3166CountryCode))
,它可以工作。
尝试将
writer.Write(ip.Iso3166CountryCode)
更改为
writer.Write(UnicodeCodeincode.Default.GetBytes(ip.Iso3166CountryCode))
,应该可以工作了!)

您可以回答自己的问题,并将其标记为已接受。这比编辑你的问题以获得答案要好。或者删除你的问题…..嗯,这就是我在你回答之前发布的确切解决方案。好吧,笑脸有点小-我看到“不回答”,我的鼠标开始自行复制粘贴。。。