Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP][SQL] XAMPP polskie kodowanie
M@X
post
Post #1





Grupa: Zarejestrowani
Postów: 212
Pomógł: 0
Dołączył: 18.12.2003
Skąd: Warszawa

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


Witam.
Kombinuje już pare godzin i nie moge dać sobie rady z kodowaniem polskich znaków.
Chodzi o program XAMPP w sieci lokalnej.
W bazie danych mam normalnie widoczne polskie znaki (ŻÓŁĆ ĘŚLĄŹŃ) ale podczas wyświetlania na stronie widać tylko (Ó) reszta polskich znaków to same znaki zapytania ((IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif) ?).
Proszę o pomoc jakie mam ustawić kodowanie:
- w kodzie źródłowym plików
- w systemie zapisu pliku php
- w systemie kodowania znaków dla MySQL
- oraz metode porównywania napisów w tabeli bazy danych

Jak widzicie kombinacji jest wiele, oczywiście próbowałem wszędzie ustawić utf-8 lub iso-8859-2 lub windows-1250. Niestety ciągle problem ten sam. Może o czymś jeszcze zapominam ?
Go to the top of the page
+Quote Post
drPayton
post
Post #2





Grupa: Zarejestrowani
Postów: 890
Pomógł: 65
Dołączył: 13.11.2005
Skąd: Olsztyn

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


Wszędzie takie samo kodowanie. Najlepiej utf8 lub iso-8859-2 (latin2).
1. Plik zapisuj w odpowiedniej stronie kodowej
2. Ustal kodowanie tekstu za pomocą tagu meta lub odpowiednim header'em, np:
  1. <?php
  2. header('Content-T: text/html; charset=UTF-8');
  3. ?>

3. Ustal kodowanie w bazie
4. Zaraz po nawiązaniu połączenia z bazą danych, np:
  1. SET NAMES 'utf8'


Jeśli wszystko to zrobisz, nie ma innej opcji jak tylko poprawnie działać (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Jeśli nadal nie będzie polskich znaczków - gdzieś w powyższym popełniłeś błąd.

edit: "Content-Type:" ma być w 2. punkcie, nie wiem czemu forum zżera mi tam literki o_O

Ten post edytował drPayton 15.09.2008, 12:12:59
Go to the top of the page
+Quote Post
M@X
post
Post #3





Grupa: Zarejestrowani
Postów: 212
Pomógł: 0
Dołączył: 18.12.2003
Skąd: Warszawa

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


Wszędzie dałem kodowanie iso-8859-2 a w bazie latin2_general_ci i dalej w bazie widnieją polskie znaki a na stronie znaki zpaytania... mało tego, mam taki mini panel administracyjny i jak w nim edytuje jakiś wpis, wpisuje polskie znaki to w bazie mi jeszcze podmienia polskie znaki na znaki zapytania.

A co do tej liniki po nawiąznaiu połączenia to wyskakuje mi komunikat:

Parse error: syntax error, unexpected T_STRING in C:\Program Files\xampp\htdocs\search.php on line 10

Jakieś jeszcze pomysły ?
Go to the top of the page
+Quote Post
drPayton
post
Post #4





Grupa: Zarejestrowani
Postów: 890
Pomógł: 65
Dołączył: 13.11.2005
Skąd: Olsztyn

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


Widzę, że z arączkę trzeba poprowadzić (IMG:http://forum.php.pl/style_emoticons/default/aaevil.gif)

Skoro zdecydowałeś się na latin2, to:

1. Zapisuj pliki php/html/tpl etc z kodowaniem iso-8859-2
2.
  1. <?php
  2. header('Content-: text/html; charset=ISO-8859-2');
  3. ?>
Zanim cokolwiek na ekran wyrzucisz
3. Cała baza jak i tabele i poszczególne pola mają mieć kodowanie latin2
4.
  1. <?php
  2. mysql_query("SET NAMES 'latin2'");
  3. ?>


Chyba mi nie powiesz, że te set names wpisałeś ot tak, bezpośrednio w kod? o_O
Go to the top of the page
+Quote Post
Pilsener
post
Post #5





Grupa: Zarejestrowani
Postów: 1 590
Pomógł: 185
Dołączył: 19.04.2006
Skąd: Gdańsk

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


Odpaliłem XAMPP'a, z bazą łącze się tak:
  1. <?php
  2. if (!@mysql_connect('localhost', 'root', 'pass')){
  3.   $error[] = Brak poł&plusmn;czenia z baz&plusmn;, spróbuj później';
  4. }else{
  5.   mysql_query("SET NAMES latin2");
  6.   mysql_select_db('costam);
  7. }
  8. ?>

Kodowanie dla bazy ustawiłem latin2, kodowanie na stronie ISO - i działa bez problemów.

Prawdopodobobnie masz w bazie jakieś dzikie krzaki - spróbuj je pobrać z bazy i sprawdzić kodowanie funkcją mb_detect_encoding" title="Zobacz w manualu PHP" target="_manual - ustaw tak jak piszę i wpisz coś do bazy - powinno śmigać.
Go to the top of the page
+Quote Post
seismic
post
Post #6





Grupa: Zarejestrowani
Postów: 10
Pomógł: 0
Dołączył: 9.04.2007
Skąd: Zamość / Lublin / Warszawa

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


Trochę głupie pytanie ale...
Ktoś może odpowiedzieć dlaczego nawet print nie pokazywał mi polskich znaków dopóki nie dałem selekta SET NAMES 'UTF-8' ?
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: 22.08.2025 - 13:33