Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php][mysql][csv] Usuwanie tekstu z polskimi znakami
Forum PHP.pl > Forum > PHP
kubap007
Witam.

Mam pewien problem z dodawaniem danych do bazy. Wykorzystuję funkcję :
  1. while(($data = fgetcsv($handle, 10000, ",")) !== FALSE){
do operowania na danych z pliku csv. Wszystko jest ok do momentu gdy występuje polski znak diakrytyczny. Do bazy zapisuje jedynie część słowa do znaku i nic poza tym. Oczywiście na początku wykonuję:

  1. $query ="SET NAMES 'utf8';"; // upewniamy się że zadziałają polskie znaki
  2. mysql_query($query) or die(mysql_error());
  3.  
  4. $query ="SET CHARSET 'utf8';"; // upewniamy się że zadziałają polskie znaki
  5. mysql_query($query) or die(mysql_error());


Ale dalej krzaki.
Mam małe podejrzenia co do funkcji fopen(). Ponieważ kiedy porównałem znaki wpisywane z palca (echo "łłłł") oraz to co daje echo fopen()+fread() to przy drugiej opcji były krzaki a przy pierwszej nie.

Będę wdzięczny za pomoc.
luck
Jesteś pewien, że plik CSV jest kodowany w UTF, a nie np. ISO lib Cp1250?
kubap007
Nie do końca wiem jak jest kodowany ten plik (źródło zewnętrzne), ale w notepad++ rzeczywiście przy kodowaniu UTF-8 są krzaki. Dobrze się wyświetla przy domyślnym ANSI.
Nie wiem co natomiast zrobić jeśli ma być inne kodowanie, ponieważ baza ma UTF-8 i też nie można tego zminić.
luck
Możesz popróbować albo z wysyłaniem do bazy "SET NAMES" z odpowiednim kodowaniem albo z użyciem "iconv".
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.