php CSV uvoz in zapis v bazo
 
Tomcater 19. maj 2010 21:55:12 Pridružen od:
29. okt 2009
595 objav
509 82 8
#1

Pozdrav vsem,



prosil bi za en nasvet kako rešit naslednjo zadevo. Imam CSV datoteko, ki vsebuje šumnike in tudi lahko vse druge mogoče znake. Podatkovna baza ima pravilo za razvrščanje znakov 'utf8generalci' (mysql). Problem imam, ker mi nepravilno zapiše podatke v bazo! Tako kot imam jaz trenutno narejeno, mi v prikazu na strani naredi znak ? (že tu bi se morali pojaviti šumniki), ko pa zapišem v bazo, pa mi dejansko zapiše šumnike, moralo pa bi nekaj v stilu Ž za znak 'Ž'.



Kako bi vi rešili problem oz. kaj priporočate?



Thx za vse info.


všeč(0) ni všeč(0) spam(0)
 
wickedsheep 19. maj 2010 22:04:01 Pridružen od:
22. jan 2010
20 objav
26 0 0
#2

Poglej v izvorno CSV datoteko in poglej kakšen encoding imaš v datoteki. Če se ta razlikuje od "utf8generalci" ga boš moral popraviti. Najlažje boš to uredil z Notepad++.



In seveda pred uvozom ne pozabi na stavek


SET NAMES utf8 COLLATE utf8_general_ci;
všeč(0) ni všeč(0) spam(0)
ExtJS, Sencha Touch consulting | MySQL, MSSQL, Oracle performance tuning - wickedsheep.si
 
Tomcater 19. maj 2010 22:20:44 Pridružen od:
29. okt 2009
595 objav
509 82 8
#3

Hvala!



Datoteka je bila kodirana v ANSI... ko sem jo pretvoril v UTF-8 je potem bilo vse OK.

Pred zapisom v bazo pa ni bilo potrebno izvesti nobenega dodatnega stavka.



Je pa sedaj problem, ker očitno Excel ne shrani CSV v utf 8 formatu :S...


všeč(0) ni všeč(0) spam(0)
 
Tomcater 19. maj 2010 22:49:34 Pridružen od:
29. okt 2009
595 objav
509 82 8
#4

OK, bom očitno konvertal:


iconv("windows-1250","UTF-8",$string)

Huh, bo potrebno še prej mal datoteke preverit v katerem ecodingu so shranjene.


všeč(0) ni všeč(0) spam(0)
 
esedic 19. maj 2010 23:33:01 Pridružen od:
28. nov 2007
368 objav
184 13 4
#5

Microsoft Excel (vsaj po mojih izkušnjah) je zelo neroden pri delu z CSV, veliko bolje se mi obnese OpenOffice Calc (ni težav pri encodingu, širše možnosti pri delimiterjih...).


všeč(0) ni všeč(0) spam(0)
 
 

🔒 Za odgovor na to temo se moraš prijaviti.

Prijavi se