【问题标题】:.NET: Reading/writing binary string.NET:读/写二进制字符串
【发布时间】:2010-10-14 05:31:23
【问题描述】:

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

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

using (var stream = new FileStream(args[1], FileMode.Create))
{
 using (var writer = new BinaryWriter(stream))
 {
  writer.Write(ip.Iso3166CountryCode);
  ...
 }
}

Iso3166CountryCode 是一个带有两个字符(“US”)的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)) 并且它有效。

【问题讨论】:

  • 您可以回答自己的问题并将其标记为已接受。这比编辑您的问题以获得答案要好。
  • 否则删除你的问题.....

标签: c# encoding ascii character


【解决方案1】:

尝试将writer.Write(ip.Iso3166CountryCode) 更改为writer.Write(UnicodeEncoding.Default.GetBytes(ip.Iso3166CountryCode)),应该可以! :)

【讨论】:

  • 呃,这是我在您回答之前发布的确切解决方案。
  • 好的,笑脸有点小 - 我看到“不回答”,我的鼠标开始自行复制粘贴...
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-11-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-06-08
相关资源
最近更新 更多