Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Baza Latin2 źle importuje?
aras785
post 19.12.2017, 00:23:36
Post #1





Grupa: Zarejestrowani
Postów: 859
Pomógł: 177
Dołączył: 29.10.2009

Ostrzeżenie: (0%)
-----


Cześć,

otrzymałem od klienta (który otrzymał od zew. firmy) backup bazy. W jednym pliku mam strukturę bazy:

  1. CREATE TABLE IF NOT EXISTS `example` (
  2. `id` bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT,
  3. `name` varchar(100) NOT NULL DEFAULT '',
  4. `content` longtext NOT NULL,
  5. PRIMARY KEY (`id`)
  6. ) ENGINE=MyISAM DEFAULT CHARSET=latin2;


i w drugim pliku mam dane:

  1. INSERT INTO `example` (`id`,`name`,`content`) VALUES ('123','title','RODZAJ ZAJ??:');
link bo forum zmienia wynik: https://i.imgur.com/rLVbfQj.png

Tworzę na lokalu bazę danych w kodowaniu: latin2_generali_ci

Po zaimportowaniu w bazie danych nadal widzę taki krzaki. Utworzyłem sobie plik php (latin2, utf8) i nadal otrzymuje tekst bez polskich znaków:

  1. $pdo = new PDO(
  2. "mysql:host=localhost;dbname=baza",
  3. "root",
  4. "",
  5. array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES latin2")); // lub utf8
  6.  
  7. $statement = $pdo->query('SELECT * FROM example WHERE id=123');
  8. $a = $statement->fetch();


Robię coś źle? A może otrzymałem bubel?

Dzięki

Ten post edytował aras785 19.12.2017, 00:26:57
Go to the top of the page
+Quote Post
viking
post 19.12.2017, 04:49:55
Post #2





Grupa: Zarejestrowani
Postów: 6 365
Pomógł: 1114
Dołączył: 30.08.2006

Ostrzeżenie: (0%)
-----


Albo otwierasz w edytorze ze złym kodowaniem albo dostałeś bubel.swoją drogą pora na utf8 przejść.


--------------------
Go to the top of the page
+Quote Post
Tomplus
post 19.12.2017, 06:57:37
Post #3





Grupa: Zarejestrowani
Postów: 1 832
Pomógł: 225
Dołączył: 20.03.2005
Skąd: Będzin

Ostrzeżenie: (0%)
-----


Pamiętam że sam miałem problemy z krzakami mimo że edytor obsługiwał takie kodowanie. Sam .sql był w porządku do momentu gdy nie modyfikowało się jego zawartości notatnikiem o złym kodowaniu. Wtedy całe kodowanie wcześniejsze szlag trafiał.

Więc w zależności od tego ile jest tam treści, możesz sam przepisać na UTF-8.
Go to the top of the page
+Quote Post
aras785
post 21.12.2017, 23:57:13
Post #4





Grupa: Zarejestrowani
Postów: 859
Pomógł: 177
Dołączył: 29.10.2009

Ostrzeżenie: (0%)
-----


Cześć.

Odpaliłem sobie linuxa i użyłem komendy:
  1. iconv -f iso-8859-2 -t utf-8 baza_latin2.sql > baza_utf8.sql


następnie zmodyfikowałem w pliku baza_utf8.sql kod odpowiedzialny za strukturę:

z
  1. ENGINE=MyISAM DEFAULT CHARSET=latin2;


na
  1. ENGINE=InnoDB DEFAULT CHARSET=utf8;


Pozdrawiam
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 18.04.2024 - 07:44