Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MySQL]LOAD DATA INFILE a polskie znaki
Forum PHP.pl > Forum > Przedszkole
Arhimenrius
Tak.. po raz kolejny męczę z tym LOCAL DATA INFILE, aczkolwiek jest ono bardzo problematyczne.
Tym razem udało się już przejść wszystkie problemy z kodowaniem, jednak obecnie jest problem z MySQL.
Z niewiadomych przyczyn, po urywa zapytanie przed polskim znakiem. Niestety ale google na ten temat milczy ;|
Przykład

Ktoś;Morświn;Kot;
Ala;mała;łuna;

Zwraca mi:
Kto;Mor;Kot;
Ala;ma;;


Tu jest fragment kodu odpowiedzialny za to.
  1. $stmt=$db->query($s="ALTER TABLE `users` DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci");
  2. $stmt=$db->query($s="ALTER DATABASE `biblioteka` DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci");
  3. $stmt=$db->query($s="
  4. LOAD DATA LOCAL INFILE '{$basedir}/{$csv}/{$savename}'
  5. INTO TABLE `users`
  6. CHARACTER SET 'utf8'
  7. FIELDS TERMINATED BY ';'
  8. ENCLOSED BY '\"'
  9. ESCAPED BY '\\\'
  10. LINES TERMINATED BY '\\r\\n'
  11. IGNORE 1 LINES");
nospor
Czy plik csv ma kodowanie utf8?
Czy ustanawiając połączenie z bazą, ustawiłeś utf8? Tu tego nie widać.
Arhimenrius
problem tu stanowiło niejasne kodowanie pliku.

  1. $tekst = strtolower(iconv(iconv_get_encoding($tekst),"utf-8",$tekst)); //konwertuje kodowanie pliku na UTF-8


To na szczęście załatwiło sprawę.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.