Permalänk
Medlem

Skriva Å,Ä,Ö i c#

Hej, har en list med strings som innehåller å,ä,ö. Men när jag lägger till dem i en Listview, så får jag fram konstiga symboler istället för just de bokstäverna.

Någon som vet hur man ska kunna få fram dessa bokstäver i c#?

Leker runt med Lexbase's Databas om någon så undrar. Inget skolrelaterat.

Visa signatur

Corsair 750D | i5 4670k | ASUS Z87-a | 8GB Corsair Dominator | Asus GTX770-DC2OC | Samsung 840 EVO 250GB | WD 500GB X2

Permalänk
Hedersmedlem

Förmodligen har filen en annan teckenkodning än vad ditt program förväntar sig. Om man till exempel använder en StreamReader kan man välja sådan såhär:

System.IO.StreamReader sr = new System.IO.StreamReader("u.txt", Encoding.UTF8);

Permalänk
Medlem

Använder du streamreader för att läsa filen? Sätt korrekt encoder.

StreamReader reader = new StreamReader(filename, System.Text.Encoding.UTF8);

Visa signatur

~. Citera så jag hittar tillbaka .~

Permalänk
Medlem
Skrivet av Elgot:

Förmodligen har filen en annan teckenkodning än vad ditt program förväntar sig. Om man till exempel använder en StreamReader kan man välja sådan såhär:

System.IO.StreamReader sr = new System.IO.StreamReader("u.txt", Encoding.UTF8);

Skrivet av KeVVa:

Använder du streamreader för att läsa filen? Sätt korrekt encoder.

StreamReader reader = new StreamReader(filename, System.Text.Encoding.UTF8);

Provade det tidigare utan resultat...

Visa signatur

Corsair 750D | i5 4670k | ASUS Z87-a | 8GB Corsair Dominator | Asus GTX770-DC2OC | Samsung 840 EVO 250GB | WD 500GB X2

Permalänk
Medlem

Ah, satte encoding till UTF7. Då fungerade det!

Visa signatur

Corsair 750D | i5 4670k | ASUS Z87-a | 8GB Corsair Dominator | Asus GTX770-DC2OC | Samsung 840 EVO 250GB | WD 500GB X2

Permalänk
Hedersmedlem
Skrivet av reflect:

Ah, satte encoding till UTF7. Då fungerade det!

Funkar det så funkar det, men det låter ytterst märkligt att det faktiskt skulle vara en UTF-7-fil. Om det nu inte är UTF-8, så är det troligen ISO-8859-1 eller CP-1252. Jag tycker visserligen att det inte borde fungera alls att tolka det som UTF-7 om det inte är UTF-7, men det är kanske något bakom kulisserna i C#:s teckenkodningshantering som spökar.

Ett enkelt sätt att ta reda på vilken teckenkodning filen har är exempelvis att öppna den i Firefox, välja "View" → "Character encoding" och se vad Firefox identifierar den som.

Visa signatur

Nu med kortare användarnamn, men fortfarande bedövande långa inlägg.

Permalänk
Medlem
Skrivet av phz:

Funkar det så funkar det, men det låter ytterst märkligt att det faktiskt skulle vara en UTF-7-fil. Om det nu inte är UTF-8, så är det troligen ISO-8859-1 eller CP-1252. Jag tycker visserligen att det inte borde fungera alls att tolka det som UTF-7 om det inte är UTF-7, men det är kanske något bakom kulisserna i C#:s teckenkodningshantering som spökar.

Ett enkelt sätt att ta reda på vilken teckenkodning filen har är exempelvis att öppna den i Firefox, välja "View" → "Character encoding" och se vad Firefox identifierar den som.

Håller mig dig. Trodde verkligen inte att det skulle fungera. Dock har jag inte Firefox på min dator men enligt en online-identifier är dokumentet UTF-8. Så drar väl slutsatsen att det nog är något i C# som spökar.

Visa signatur

Corsair 750D | i5 4670k | ASUS Z87-a | 8GB Corsair Dominator | Asus GTX770-DC2OC | Samsung 840 EVO 250GB | WD 500GB X2