12. juli 2006 - 14:15
Der er
7 kommentarer og 1 løsning
Sortere danske tegn korrekt
Hvordan får man mySQL til at sortere korrekt hvis der i teksten står Ø for Ø og så videre?
Annonceindlæg fra Academic Work Denmark A/S
grimt: laver en hel stribe replace i din order by pænt: gemmer rigtige ÆØÅ i databasen og lader din web app konvertere til entiteter
Jeg laver noget import til en tabel i databasen, og det er her det går galt. Den ændrer alle specialtegn til ?. Men jeg kan ikke bruge LOAD DATA, da csv-filen ikke indeholder lige så mange felter som tabellen. Nogen ide om hvad der kan gå galt i denne konvertering?
special tegn til ? plejer at betyde at filen indeholder ISO-8859-1 men fortolkes som UTF-8
Ja, det var også sådan noget jeg var ude i, men hvordan undgår jeg det når jeg hiver teksten fra en CSV fil?
Jeg kan lave det om med utf8_encode i min php kode, men de store Ø'er driller.
Den smider de store begyndelsesbogstaver væk hvis det er Æ,Ø eller Å. Min kode: $file = "upload/address_import.csv"; $row = 1; $handle = fopen($file, "r"); while (($data = fgetcsv($handle, 1000, ";")) !== FALSE) { if($row > 1){ $num = count($data); $indsaet = "insert into tt_address ("; foreach($_POST as $key => $value) { if($key!="truncate"){ $indsaet .= $value.", "; } } $indsaet = substr($indsaet, 0, -2); $indsaet .= ", pid) values ("; for ($c=0; $c < $num; $c++) { //print $data[$c]; $str = $data[$c]; $indsaet .= "\"".$str."\", "; } $indsaet = substr($indsaet, 0, -2); $indsaet .= ", 16)"; print $row." ".$indsaet."<br>\n"; mysql_query($indsaet) or die(mysql_error()); } $row++; } fclose($handle);
setlocale løste problemet.
Computerworld tilbyder specialiserede kurser i database-management