2010-05-31 4 views
5

J'écris un tas de chaînes à un fichier en utilisant un écrivain de chaîne, mais j'ai découvert un problème quand je regarde le fichier créé en hexadécimal, et c'est-à-dire que l'un des espaces (x20) est remplacé par un espace insécable à la place (xc2 a0) lorsqu'il y a 2 espaces séparant les mots. Je ne sais pas si c'est un gros problème mais j'aimerais savoir s'il y a une solution facile à cela?Problème StreamWriter - 2 espaces écrits comme Hex '20 c2 a0 'au lieu de Hex '20 20'

Voici ce que je vois:

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

Mais je voudrais à toujours:

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

Notez que la a0 c2 ne sont pas visibles ici, mais la décharge ressemble à quelque chose comme 'UNE.' quand j'utilise le plugin Hex Notepad ++.

Quelqu'un a-t-il des idées?

Bravo et merci à l'avance;

-Daver

+0

J'ai essayé et obtenu le résultat attendu ... pourriez-vous poster votre code? Aussi, d'où vient la corde? –

+0

Je suppose que la source contient un espace insécable. Vous pouvez les remplacer avant d'écrire. D'où obtenez-vous votre source? –

+0

C'est rapide. La source est: // Transaction # 1. Transaction transaction1 = InitializeTransaction (_tranId1, TransactionProcessing.Currency.CurrencyCode.CAD, transactionDate, (décimal) 24939.34, @ "CIBC SWEEP" .ToString(), "3"); – Daver

Répondre

5

Si votre source contient des espaces insécables, vous pouvez les remplacer avant d'écrire la chaîne.

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

Brillant! Tu l'as fait. Café gratuit pour vous quand vous êtes au Canada. – Daver

Questions connexes