Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Problem z kodowaniem znaków w MySQL
Zagiewa
post
Post #1





Grupa: Zarejestrowani
Postów: 84
Pomógł: 0
Dołączył: 12.08.2009

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


Witam. Mam problem związany z kodowaniem znaków, a konkretniej mówiąc z ich wyświetlaniem. Cała strona używa kodowanie ISO-8859-2. Do tej pory tworząc tabele w phpmyadmin nie zwracałem uwagi na to jakie kodowanie stosuje do swoich tabel - po prostu działały. Obecnie po utworzeniu tabeli, dodałem rekord z treścią gdzie oczywiście znalazły się polskie ogonki (ą, ę, ł, ć, itd.) Gdy pobieram dane z bazy i wyświetlam do strony widzę kleksy sad.gif Bawiłem się, ze zmianami kodowania znaków w bazie na utf8_polska_ci i latin2_general_ci ale bez skutku (zmieniałem zarówno kodowanie całej tabeli jak i poszczególnych rekordów) i bez skutku. Wiecie co może być nie tak?

Byłbym wdzięczny za jakąś poradę.
Go to the top of the page
+Quote Post
emmix
post
Post #2





Grupa: Zarejestrowani
Postów: 2
Pomógł: 0
Dołączył: 16.11.2010

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


Gdy ja walczyłem z polskimi znakami pomógł mi artykuł:
http://tosiek.pl/o-co-chodzi-z-latin1-i-dl...-polskie-znaki/

Zrobiłem na początku PHP

ini_set('default_charset', 'UTF-8');

a potem ustawienie kodowania dla połączenia z mysql
$pdo = new PDO($dsn, $user, $password, array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES latin1"));

Najbardziej zdziwiło mnie, że kodowanie latin1, ISO-8859-1 nie obsługuje polskich znaków ani nie istnieją one w tym kodowaniu smile.gif


Oczywiście Ty możesz mieć inne kodowania, ale może coś zadziała.
Ogólnie jednym jest kodowanie w bazie, a jeszcze innym kodowanie połączenia. To potrafi się zmieniać nawet w zależności od hostingu.

Go to the top of the page
+Quote Post
Majzok
post
Post #3





Grupa: Zarejestrowani
Postów: 20
Pomógł: 1
Dołączył: 25.11.2007
Skąd: Kraków

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


Dwie podpowiedzi na początek:
1. Sprawdź czy w znaczniku meta masz ustawione dobre kodowanie
2. Sprawdź czy pliki php masz ZAPISANE w tym samym kodowaniu

PS: polecam utf8 winksmiley.jpg

Ten post edytował Majzok 22.11.2010, 23:55:19
Go to the top of the page
+Quote Post
tr@k
post
Post #4





Grupa: Zarejestrowani
Postów: 41
Pomógł: 8
Dołączył: 13.09.2010

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


Użyj SET NAMES do ustawienia kodowania przed pobraniem danych


--------------------
Web usability
Program Partnerski
Go to the top of the page
+Quote Post
webasek
post
Post #5





Grupa: Zarejestrowani
Postów: 274
Pomógł: 35
Dołączył: 18.07.2008
Skąd: Kielce

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


Po pierwsze sprawdź czy dodając rekord "z ręki" do bazy danych dodaje się bez problemu jeśli tak to problem jest z kodowanie pliku najprawdopodobniej masz zapisany plik w win albo czymś takim a kodowanie dokumentu całego (wyświetlanie strony) w innym kodowaniu masz i tu jest problem zmień kodowanie pliku.


--------------------
"Tylko dwie rzeczy są nieskończone: wszechświat oraz ludzka głupota,
choć nie jestem pewien co do tej pierwszej." Albert Einstein

Wirtualny Rynek Predykcyjny
Go to the top of the page
+Quote Post
toaspzoo
post
Post #6





Grupa: Zarejestrowani
Postów: 778
Pomógł: 84
Dołączył: 29.07.2010
Skąd: Gliwice / Pławniowice Mistrz niezmordowanej klawiatury.

Ostrzeżenie: (20%)
X----


W bazie danych w strukturze ma być ustawione na:
  1. utf8_unicode_ci


A na stronie w sekcji head:
  1. <META HTTP-EQUIV="content-type" CONTENT="text/html; charset=iso-8859-2">



Pozdrawiam


--------------------

LS Easter egg <
Go to the top of the page
+Quote Post
krzysztof_kf
post
Post #7





Grupa: Zarejestrowani
Postów: 1 135
Pomógł: 158
Dołączył: 19.03.2009
Skąd: Toruń

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


Cytat(Zagiewa @ 15.11.2010, 20:17:06 ) *
Witam. Mam problem związany z kodowaniem znaków, a konkretniej mówiąc z ich wyświetlaniem. Cała strona używa kodowanie ISO-8859-2. Do tej pory tworząc tabele w phpmyadmin nie zwracałem uwagi na to jakie kodowanie stosuje do swoich tabel - po prostu działały. Obecnie po utworzeniu tabeli, dodałem rekord z treścią gdzie oczywiście znalazły się polskie ogonki (ą, ę, ł, ć, itd.) Gdy pobieram dane z bazy i wyświetlam do strony widzę kleksy sad.gif Bawiłem się, ze zmianami kodowania znaków w bazie na utf8_polska_ci i latin2_general_ci ale bez skutku (zmieniałem zarówno kodowanie całej tabeli jak i poszczególnych rekordów) i bez skutku. Wiecie co może być nie tak?

Byłbym wdzięczny za jakąś poradę.



Witam musisz w szczególności ujednolicić kodowanie dla całej bazy danych , tabel , i kolumn najlepiej żeby to było kodowanie utf-8 jeżeli masz kodowanie utf-8 ustawione w bazie danych to musisz mieć także takie same kodowanie dla całej strony .
Go to the top of the page
+Quote Post
toaspzoo
post
Post #8





Grupa: Zarejestrowani
Postów: 778
Pomógł: 84
Dołączył: 29.07.2010
Skąd: Gliwice / Pławniowice Mistrz niezmordowanej klawiatury.

Ostrzeżenie: (20%)
X----


ale wiesz, że zamiast polskich znaków wstawiasz odpowiedniki? http://www.kurshtml.boo.pl/generatory/unicode.html


--------------------

LS Easter egg <
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 Aktualny czas: 21.08.2025 - 08:37