![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 259 Pomógł: 1 Dołączył: 3.07.2011 Ostrzeżenie: (0%) ![]() ![]() |
Mam plik csv z francuskimi tekstami produktow, gdy otworze go w
notepad++ wykrywa go jako UTF-8 z BOM w formacie UNIX i wszystko wyswietla sie poprawnie OpenOffice przy ustawieniu Unicode UTF-8 wszystko wyswietla sie poprawnie (brak krzakow) otwieram wiec skryptem php w ktorym mam na poczatku: Kod header('Content-type: text/html; charset=utf-8'); lacze sie przez PDO do mysql: Kod $this->db = new PDO('mysql:host='.$db_config['host'].';dbname='.$db_config['db_name'].';encoding=utf8', $db_config['username'], $db_config['password']); $this->db->exec("SET CHARACTER SET utf8"); $this->db->exec("SET NAMES utf8"); $this->db->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING ); i wgrywam csv poleceniem load Kod $this->db->query('LOAD DATA LOCAL INFILE "'.realpath(dirname(__FILE__).'/../../'.$sciezka_csv).'" INTO TABLE `'.$baza_danych_temp.'` FIELDS TERMINATED BY "," OPTIONALLY ENCLOSED BY "\"" LINES TERMINATED BY "\n" IGNORE 1 LINES '); cala baza i kazda z poszczegolnych kolumn ma utf8_general_ci no i sa krzaki. Wiele razy sie meczylem z kodowaniem i tutaj chyba wszystko zrobilem zeby bylo odpowiednie a mimo tego i tak nadal jest zle, no nie mam pojecia czemu :/ ROZWIAZANIE jakby ktos jeszcze mial problem z tym to w poleceniu LOAD DATA LOCAL INFILE brakuje informacji w jakim kodowaniu ma to wrzucac, czyli linijki: Kod CHARACTER SET utf8 prawidlowe polecenie brzmi zatem: Kod $this->db->query('LOAD DATA LOCAL INFILE "'.realpath(dirname(__FILE__).'/../../'.$sciezka_csv).'" INTO TABLE `'.$baza_danych_temp.'` CHARACTER SET utf8 FIELDS TERMINATED BY "," OPTIONALLY ENCLOSED BY "\"" LINES TERMINATED BY "\n" IGNORE 1 LINES '); sprawa rozwiazana, wszystko sie wrzuca w prawidlowym kodowaniu Ten post edytował Octobus 4.02.2016, 12:31:58 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 23.08.2025 - 05:28 |