C# / MySQL Encoding

Tags:    .net

Hej Udviklere.

Jeg har et lille problem vedr. danske bogstaver (æøå), som jeg ikke helt kan gennemskue.
Jeg henter alle post nr. og byer fra en tekstfil hvorefter jeg indsætter dem i en MySQL database.

Når jeg har hentet en linje fra txt filen, skriver jeg den ud på skærmen. For at få specielle karaktere skrevet korrekt ud på skærment har jeg tilføjet encoding til min textreader.

Fold kodeboks ind/udKode 


Karakterene bliver nu vist korrekt på skærmen. Problemet er så at nå jeg indsætter mine data i min MySQL database bliver speciellt karaktere som æøå ikke indsat korrekt.

Hvis jeg via MySQL konsollen manuelt indsætter danske karaktere bliver de indsat korrekt.

Håber der er en der kan hjælpe.

Mvh. Kenneth



Ja du skal sørge for at din MySQL-server bruger encodingen som standard, men jeg mener også at du kan sætte det i din query. Er ikke helt sikker, da det er et stykke tid sin jeg har brugt C#.



Encoding på MySQL serveren er Latin1 hvilket skulle være godt nok.

Jeg tror at det er .NET der overfører karakterene "forkert" til databasen. Kan bare ikke lige gennemskue hvor/hvad der går galt.




Hvis du har mulighed for det så prøv at køre denne kommando på din tabel
Fold kodeboks ind/udKode 


Det rettede det samme problem jeg havde i mit C++ program.



Hej Martin,

Tak for dit svar, men der var desværre ingen ændring.

Hvis jeg via mysql indsætter specielle karaktere er der ingen problemer.

Fold kodeboks ind/udKode 


Hvis jeg indsætter det via C# opstår problemerne.

Fold kodeboks ind/udKode 




Okay. Jeg kan også se du bruger Odbc. Har du prøvet med MySQL egen .NET libray?? Det kunne være noget odbc. Men ved det ikke.



Okay. Jeg kan også se du bruger Odbc. Har du prøvet med MySQL egen .NET libray?? Det kunne være noget odbc. Men ved det ikke.


Fandt ud af at jeg brugte MySql's library for Java. Dooh.

Når men, har nu taget MySql's library for .NET 2 i brug, men der er desværre ingen forandringer. Karakterne er stadig underligt.

Fold kodeboks ind/udKode 




Okaaay. Har lige fundet ud af noget.

Det jeg indsætter fra .NET til databasen ser i databasen således ud: ñ¨y¦
Når jeg så henter det igen og skriver det ud i .NET ser det rigtigt ud.

Hvis jeg manuelt skriver åøæ i databasen og trækker det ud i .NET ser den tekst underlig ud.

Eftersom der ikke skal indsættes noget manuelt i databasen er det ikke noget problem. Syntes bare det er mystisk.

Hvis der er nogen der ved hvorfor, må i meget gerne sende en besked.

Tak for jeres svar.

Kenneth



t