C# -ban miért kérdőjelként jelennek meg az ékezetes betűk amikor kiíratom őket?
Csináltam egy programot, ami egy txt fájlból olvas be sorokat és a magyar ábc ékezetes betűi helyett, amikor kiíratom őket egy MessageBox-ba, akkor fekete rombusz alakba kérdőjelet tesz a helyükre.
Így viszont hibátlanul megjeleníti:
MessageBox.Show("áéőúűóüö");
Ha jól sejtem a txt fájl karakterkódolása miatt van ez. Kérdés hogyan csináljam meg hogy a fájlból beolvasott soroknál is normálisan jelenjenek meg az ékezetes karakterek?
Hello!
Magyar karakterkészletet kell beállítani a Stremnél, ami a magyar esetében ISO 1859-2. Vagyis a megoldás:
string result = String.Empty;
using (StreamReader sr = new StreamReader(@"C:\teszt.txt", Encoding.GetEncoding("iso-8859-2")))
{
result =sr.ReadToEnd();
};
vagy ha ragaszkodsz a soronkénti kiolvasáshoz, és a FileInfo-hoz, akkor:
//neked relatív uri-d van!
FileInfo fi = new FileInfo(@"C:\teszt.txt");
var sz = new List<string>();
using (StreamReader sr = new StreamReader(fi.FullName, Encoding.GetEncoding("iso-8859-2")))
{
while(sr.Peek() > -1) //vagy while(!sr.EndOfStream)
sz.Add(sr.ReadLine());
};
Látom meg oldódott, akkor nincs para...
amit írtam az egy példa program volt.
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!