Avatar billede thomaxz Nybegynder
21. august 2007 - 14:35 Der er 9 kommentarer og
1 løsning

Mysql forbindelse via odbc , problemmer med utf8

Jeg har et c# program som bruger mysql odbc driver 3.51 til at forbinde til en mysql server.

denne server har en flg.

charset: UTF-8 Unicode(utf8)
collation: utf8_general_ci

de virke også fint i selv databsen, og også fint med almindelige tegn. men med f.eks arabiske tegn, kommer der bare ?? tegn i listview.

charset=utf8; er sat i connectionstrengen.
Avatar billede kalp Novice
21. august 2007 - 16:56 #1
Hvis det er web du programmere (mener listview er web) så har du en web.config fil.
åben den i notepad.

tilføj følgende..

<configuration>
  <system.web>
      <globalization
        requestEncoding="utf-8"
        responseEncoding="utf-8"/>
  </system.web>
</configuration>

og ellers tilføj kun det som mangler i din web.config ind under det korrekte sted.

tryk herefter på "Filer->Gem som" I encoding vælger du "UTF-8" og sig gem som.. overskriv blot din gamle web.config fil.

se om det virker.
Avatar billede thomaxz Nybegynder
21. august 2007 - 18:04 #2
Det er en ganske almindelige c# windows applikation.
Avatar billede uggi16 Nybegynder
21. august 2007 - 21:52 #3
Avatar billede thomaxz Nybegynder
22. august 2007 - 08:44 #4
uggi16 det er ikke i gennem odbc.

jeg brug mysql odbc driver 3.51 fra mysql side.

http://dev.mysql.com/downloads/connector/odbc/3.51.html
Avatar billede thomaxz Nybegynder
22. august 2007 - 13:11 #5
Nogle der har et link til et internationalt forum hvor jeg kan spørger?.
Må ikke koste noget.
Avatar billede arne_v Ekspert
27. august 2007 - 04:46 #6
Du har ikke brug for et andet forum - du har brug for at troubleshoote noget mere.

Første spørgsål er: går det overhovedet galt ved hent fra databasen eller går
det galt ved visning.

Testes nemmest ved at hente noget kendt arabisk tekst fra databasen og så udskrive
unicode værdien eller værdierne af det tegn der vises forkert og slå op i en
unicode tabel om den er rigtig.
Avatar billede arne_v Ekspert
27. august 2007 - 04:47 #7
Andet spørgsmål: hvis du bruger MySQL Connector for .NET - virker det så ?

(den ODBC driver er oldgammel)
Avatar billede thomaxz Nybegynder
25. september 2007 - 20:41 #8
Det er ven jeg hjælper.
Jeg har bedt om at prøve overnståden med tjek chratersæt.

men har endnu ikke få svaret om resultat.
Avatar billede kalp Novice
25. september 2007 - 20:46 #9
prøv at gemme i din database via. parameters
Avatar billede thomaxz Nybegynder
12. februar 2008 - 13:26 #10
Jeg og mi nven har fundet løsningen.

vi havde en klasse db som indeholde to funktioner, sql_red og sql_nonread, men den klasse oprettede en ny forbindelse hvergang. det enste der skal gøres for at få utf8 streng fra sql, er køre kommandoen "SET NAMES utf8".

løsning endte med at blive

System.Data.Odbc.OdbcDataReader rd;
System.Data.Odbc.OdbcConnection conn=new System.Data.Odbc.OdbcConnection(db.constr);
System.Data.Odbc.OdbcCommand cmd=new System.Data.Odbc.OdbcCommand("SET NAMES utf8",conn);
conn.Open();
cmd.ExecuteNonQuery();
           
string sqlstr="SELECT * FROM ordbog WHERE engelsk='"+this.textBox1.Text+"'";
cmd=new System.Data.Odbc.OdbcCommand(sqlstr,conn);
rd=cmd.ExecuteReader();

string abc=sql.rd["arabisk"].ToString();
                abc=System.Text.Encoding.UTF8.GetString(System.Text.Encoding.Default.GetBytes(abc))
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester