Avatar billede straszek Praktikant
17. april 2008 - 21:48 Der er 5 kommentarer og
1 løsning

problemer med tegnsæt

Hej,

I forbindelse med en applikation jeg er ved at lave henter jeg nogle data ud af en MSSQL database, som  jeg herefter gemmer i en MYSQL database.

Problemet er at de små æøå bliver vist forkert, allerede når jeg trækker dem ud af MSSQL databasen. Jeg har ikke mulighed for gøre ændret noget på MSSQL databasen, så jeg har brug for et trick til at fikse de forkerte bogstaver inden jeg indsætter dem i MYSQL databasen.

er der nogen der kan hjælpe?
Avatar billede olebole Juniormester
17. april 2008 - 22:13 #1
<ole>

Du skal sikkert ændre kollationer på din MySQL database - men hvad de skal ændres til, kommer anpå, hvad MSSQL db'en er sat til. Hvordan ser de forskellige specialtegn ud, når de hentes ud af MySQL? Det er absolut lettest at vise os et dokument, der henter noget ud af MySQL db'en, så vi kan se, hvad du og din server i øvrigt gør ved dokumentet  ;o)

/mvh
</bole>
Avatar billede straszek Praktikant
17. april 2008 - 22:27 #2
Jeg bruger nedenstående kode:
//FORBINDER TIL OG HENTER DATA MSSQL
$conn = mssql_connect ('xxx','xxx','xxx');
mssql_select_db ('XXX', $conn);

$query = "SELECT T0.CardCode AS Kundenr, CASE WHEN T0.Address='Bill to' THEN T1.CardName ELSE T0.Address END AS 'Butik', T0.Street AS Gade, T0.ZipCode AS Postnr,  T0.City AS 'By' FROM CRD1 T0  INNER JOIN OCRD T1 ON T0.CardCode = T1.CardCode WHERE T1.CardType ='C' AND T1.validFor='N' AND T1.frozenFor='N' AND T0.Country='DK' AND T1.QryGroup1='Y' AND T1.QryGroup12='N' AND T1.QryGroup6='N'  AND  T1.QryGroup8='N' AND ((T1.QryGroup10='Y' AND  T0.AdresType ='S' AND T1.QryGroup11='N') OR (T1.QryGroup10='N' AND T1.QryGroup11='Y' AND  T0.AdresType ='B') OR (T1.QryGroup10='N' AND  T1.QryGroup11='N')) AND T0.CardCode != '21410699' UNION ALL SELECT '21410699', 'xx', 'xx', 'xx', 'xx' ORDER BY T0.ZipCode";
$result = mssql_query($query) or die;
   
//FORBINDER tiL OG INDSÆTTER DATA I MYSQL   
        $conn = mysql_connect("xxx", "xxx", "xxx");
        mysql_select_db("rxx");

while ($row = mssql_fetch_array($result)) {

            $propidb = "INSERT INTO butikker (butik,adresse, postnr, byen, telefon,butik_type)
            VALUES('$row[Butik]', '$row[Gade]','$row[Postnr]', '$row[By]', '$row[Telefon]', '2')"or die(mysql_error());
            mysql_query($propidb);
           
}           

Det får æøå til at se sådan ud:

å= †
ø= ›
ø =‘
Avatar billede 3xm Nybegynder
20. april 2008 - 17:18 #3
nu nævner du intet om hvilket tegnsæt du gerne vil have det skal ende som, men prøv at køre dine strenge gennem utf8_encode() eller utf8_decode()

http://dk2.php.net/utf8_encode
http://dk2.php.net/utf8_decode

=)
Avatar billede straszek Praktikant
20. april 2008 - 17:36 #4
Hvilket tegnsæt det skal enden som er underordnet, bare æøå bliver vist korrekt.

Kan du give et eksempel på hvordan jeg bruger ovenstående - jeg kan ikke lige gennemskue det.
Avatar billede straszek Praktikant
21. april 2008 - 18:33 #5
er der slet ingen der har nogle bud?
Avatar billede straszek Praktikant
05. maj 2008 - 19:50 #6
efter lang tids plagen, fik jeg love til at ændre tegnsæt på mssql serveren
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
Vi tilbyder markedets bedste kurser inden for webudvikling

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