2009-03-10 29 views
0
Bir txt Dosya şu dizeyi yazmaya gerek

:System.IO.StreamWrite ve İspanyolca Karakterler

SEGS, AUS1,1,0,0,712205,584,8659094,2, Nunez FELIX Arturo, 584

I ı kullandığınızda:

using (System.IO.StreamWriter sw = new System.IO.StreamWriter(@fileSobrantes, true)) { 
     sw.WriteLine("SEGS,AUS1,1,0,0,712205,584,8659094,2,NUÑEZ FELIX ARTURO,584"); 
} 

ben dosyasında

SEGS, AUS1,1,0,0,712205,584,8659094,2, NUÃ'EZ FELIX ARTURO bu olsun , 584

ASCII, UNICODE ve ALL UTF'deki Kodlama parametrelerini deneyin ve çalışmaz.

System.IO.StreamWriter(@fileSobrantes, true,Encoding.UTF32)) 

cevap

1

Kolayca (ve doğru olarak), dosyada aldığınız bir hex dökümü vermeden kolayca temsil edemezsiniz. Dosyayı okumak için ne kullanmaya çalışıyorsunuz? Benim tahminim, sizin için çalışacak olan Encoding.Default'u denerseniz, bunu okumak için kullanmaya çalıştığınız şeyi bilmeden kesin olarak söylemek zor olacaktır.

diğer alternatif dize yanlıştır sizin kaynak olmasıdır. Kaynak kodunuzda gerçekten bir dize değişmezi varsa, Visual Studio'nun doğru bir şekilde yorumlanması için ayarlanmış olduğundan emin misiniz?

önerilen teknikler benim unicode debugging page bakınız.

DÜZENLEME: neden @ ile fileSobrantes önek olan arada,? Tanımlayıcılar için yalnızca anahtar kelimelerse bunu yapmanız gerekir. Hatasız harf hazırlıkları ile karışıyor olabilirsiniz - ancak bu bir dizgi değişmezi değil, değişken bir addır. ve ben üstlenmeden yaptım ben @ silmek için unuttum: Bu "\ tmp \ dosyalar c" gibi bir şey vardı çünkü

+0

@fileSobrantes olduğunu. Teşekkürler –

+0

Sorun değil - cevabın yardımcı olmasına sevindim. Sonunda yanlış olan neydi? –

+0

Encoding.Default kullanıyorum ve şimdi Excel, Word ve WordPad'de doğru şekilde açabiliyorum. En not defteri veya UltraEdit'i açarsam yanlış karakterler alırım. Ama Excel'de açmak için ihtiyacım var. Teşekkürler –