2010-05-31 10 views
5

Sto scrivendo un gruppo di stringhe su un file utilizzando uno scrittore di stringhe ma ho scoperto un problema quando guardo il file creato in esadecimale, e cioè che uno degli spazi (x20) viene sostituito con uno spazio non interruttivo (xc2 a0) quando ci sono 2 spazi che separano le parole. Non so se questo è un grosso problema, ma mi piacerebbe sapere se c'è una soluzione facile a questo?Problema StreamWriter - 2 spazi scritti come esadecimale '20 c2 a0 'anziché Hex '20 20'

Ecco quello che sto vedendo:

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

ma vorrei che fosse sempre:

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

Si noti che il a0 C2 non sono visibili qui, ma la discarica sembra qualcosa di simile 'UN.' quando uso il plugin Hex Notepad ++.

Qualcuno ha qualche idea?

Saluti e grazie in anticipo;

-Daver

+0

Ho provato e ottenuto il risultato previsto ... potresti pubblicare il tuo codice? Inoltre, da dove viene la stringa? –

+0

Suppongo che la fonte contenga uno spazio non interrotto. Potresti sostituirli prima di scrivere. Da dove prendi la tua fonte? –

+0

È veloce. La fonte è: // Transazione n. 1. Transazione transazione1 = InitializeTransaction (_tranId1, TransactionProcessing.Currency.CurrencyCode.CAD, transactionDate, (decimale) 24939.34, @ "CIBC SWEEP" .ToString(), "3"); – Daver

risposta

5

Se l'origine contiene spazi non-breaking è possibile sostituirli prima di scrivere la stringa.

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

Brillante! Ce l'hai fatta. Caffè gratuito per te quando sei in Canada. – Daver