2010-05-31 97 views
5

我正在使用字符串编写器向一个文件写入一串字符串,但是当我看到文件以十六进制创建,并且当有两个空格分隔单词时,其中一个空格(x20)被替换为非空白空格(xc2 a0)。我不知道这是不是一个大问题,但我想知道这是否有一个简单的解决方案?StreamWriter问题 - 2个空格写成十六进制'20 c2 a0'而不是十六进制'20 20'

这里是我所看到的:

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

但我想它总是:

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

注意,C2 A0在这里不是可见,但转储看起来像'一个。'当我使用Notepad ++ Hex插件。

有没有人有任何想法?

欢呼声及提前致谢;

-Daver

+0

我试过,并得到了预期的结果......你可以发布你的代码?另外,字符串从哪里来? – 2010-05-31 22:05:57

+0

我会假设源代码包含一个不间断的空间。你可以在写之前更换它们。你从哪里获得源代码? – 2010-05-31 22:06:36

+0

这很快。来源是: //事务#1。 Transaction transaction1 = InitializeTransaction(_tranId1,TransactionProcessing.Currency.CurrencyCode.CAD, transactionDate, (decimal)24939.34,@“CIBC SWEEP”.ToString(),“3”); – Daver 2010-05-31 22:47:39

回答

5

如果源中包含非中断空格就可以写出来的字符串之前替换它们。

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

太棒了!你做到了。每当你在加拿大时都可以免费享用咖啡。 – Daver 2010-05-31 22:49:58