【问题标题】:StreamWriter Problem - 2 Spaces Written as Hex '20 c2 a0' instead of Hex '20 20'StreamWriter 问题 - 2 个空格写为 Hex '20 c2 a0' 而不是 Hex '20 20'
【发布时间】:2010-05-31 22:00:37
【问题描述】:

我正在使用字符串编写器将一堆字符串写入文件,但是当我查看以十六进制创建的文件时发现了一个问题,那就是其中一个空格 (x20) 被替换为当有 2 个空格分隔单词时,改为使用不间断空格 (xc2 a0)。我不知道这是否很重要,但我想知道是否有一个简单的解决方案?

这是我所看到的:

20 c2 a0 53 57 45 45 50 Dump = "  SWEEP"

但我希望它永远是:

20 20 53 57 45 45 50    Dump = "  SWEEP"

请注意,此处看不到 c2 a0,但转储看起来像“A”。当我使用 Notepad++ Hex 插件时。

有人有什么想法吗?

提前欢呼和感谢;

-戴弗

【问题讨论】:

  • 我试过并得到了预期的结果......你能发布你的代码吗?另外,字符串是从哪里来的?
  • 我会假设源包含一个不间断的空间。你可以在写之前替换它们。你从哪里得到你的资源?
  • 这很快。来源是://事务#1。 Transaction transaction1 = InitializeTransaction(_tranId1, TransactionProcessing.Currency.CurrencyCode.CAD, transactionDate, (decimal) 24939.34, @"CIBC SWEEP".ToString(), "3");

标签: c#


【解决方案1】:

如果您的源代码包含不间断空格,您可以在写出字符串之前替换它们。

string sourceString = ..some string...
sourceString = sourceString.Replace((char)160, ' '); //replace nobr with space

【讨论】:

  • 太棒了!你做到了。在加拿大时为您免费提供咖啡。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-10-07
  • 2016-04-25
  • 2013-04-11
  • 1970-01-01
  • 2015-11-14
  • 2013-01-09
  • 2019-11-01
相关资源
最近更新 更多