Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL][PHP] Błędne kodowanie znaków w bazie danych
mikajlo
post
Post #1





Grupa: Zarejestrowani
Postów: 49
Pomógł: 0
Dołączył: 13.12.2010

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


Witam,
mam taką sytuację. Posiadam stronę WWW, która sobie egzystuje w sieci. Wszystko jest ok i nie ma z nią problemów. Dzisiaj pierwszy raz w sumie miałem okazję zajrzeć do bazy danych przez phpMyAdmin i okazuje się, że wszystkie teksty zapisane w bazie posiadają 'dziwne' znaczki (tylko polskie znaki takie są..).

Rozejrzałem się trochę w temacie i okazuje się, że to przypadłość kodowania znaków.. Aktualnie wygląda to u mnie tak:

Baza danych:
Metoda porównań napisów: utf8_general_ci
Kodowanie całej bazy: utf8_general_ci

W metadanych strony mam ustawione kodowanie: <meta http-equiv="content-type" content="text/html; charset=utf8" /> (ale 'po stronie' WWW wszystko wyświetla się w porządku).

W pliku php, gdzie występuje połączenie z bazą danych znalazłem jeszcze coś takiego:

  1. mysql_connect($GLOBALS['dbhost'], $GLOBALS['dbuser'], $GLOBALS['dbpass']) or die(mysql_error());
  2. mysql_select_db($GLOBALS['dbname']);
  3. mysql_query('set names latin2'); //gdzie podobno to może mieć jakieś znaczenie


Podrzucam jeszcze screeny jak to wszystko wygląda:
(IMG:http://oi64.tinypic.com/4jniw4.jpg)

O co w ogóle taki krzyk / co chciałbym osiągnąć?

Chciałbym przeprowadzić takie operacje, aby ich ostatecznym rezultatem było:
- poprawnie wyświetlany tekstu na stronie WWW (czyli tak jak jest teraz)
- poprawnie wyświetlanie (kodowanie) tekstu w bazie danych

Pozdrawiam i czekam na jakieś wskazówki,
M.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 6)
viking
post
Post #2





Grupa: Zarejestrowani
Postów: 6 380
Pomógł: 1116
Dołączył: 30.08.2006

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


Skoro w bazie jest utf-8 a na stronie latin2 skąd zdziwienie?
Go to the top of the page
+Quote Post
mikajlo
post
Post #3





Grupa: Zarejestrowani
Postów: 49
Pomógł: 0
Dołączył: 13.12.2010

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


@viking - dzięki za wypowiedź, ale ja nic nie pisałem, że jestem zdziwiony.. Przedstawiłem całą 'sytuację' z punktu widzenia osoby - laika w temacie. Poza tym ostatecznie chodzi mi o sposób rozwiązanie tego problemu.
Go to the top of the page
+Quote Post
viking
post
Post #4





Grupa: Zarejestrowani
Postów: 6 380
Pomógł: 1116
Dołączył: 30.08.2006

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


Rozwiązaniem jest przekonwertowac wszystko na utf8 ale ja bym to zostawił na najbliższe większe przepisanie kodu. Musisz się tez pozbyć funkcji mysql ktore zostały usunięte w php7. Zależy jak duże to jest.
Go to the top of the page
+Quote Post
mikajlo
post
Post #5





Grupa: Zarejestrowani
Postów: 49
Pomógł: 0
Dołączył: 13.12.2010

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


Rozumiem. W sumie nie chciałbym na ten moment tego ruszać bardziej niż to, co potrzebuje. A potrzebuję na ten moment mieć poprawne kodowanie w bazie danych.

Cytat(viking @ 27.02.2016, 22:01:47 ) *
Rozwiązaniem jest przekonwertowac wszystko na utf8 ..


A jakie są potrzebne czynności do przekonwertowania tego na utf8? Istnieje jakieś polecenie SQL, które przekonwertuje mi tą całą bazę danych ?
Go to the top of the page
+Quote Post
com
post
Post #6





Grupa: Zarejestrowani
Postów: 3 034
Pomógł: 366
Dołączył: 24.05.2012

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


temat poruszany x razy na tym forum poszukaj w wyszukiwarce (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
mikajlo
post
Post #7





Grupa: Zarejestrowani
Postów: 49
Pomógł: 0
Dołączył: 13.12.2010

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


Dla potomnych: pomogło przekonwertowanie całości bazy danych: encoding ISO-5589-2; decoding: UTF-8.

pzdr,
M.
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 23.08.2025 - 13:02