php CSV uvoz in zapis v bazo

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.

4 odgovori

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;

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...

OK, bom očitno konvertal:

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

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

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...).