[mysql/PHP] problem z polskimi znakami :(

0

Mam mały problem, z góry zaznaczam, że jestem początkująca i zanim zdecydowałąm się napisać na forum porządnie pogooglowałam...
Zatem: W bazie mam tabelę, do której (ręcznie) wpisywałam nazwy pewnych kategorii. Wpisywałam je używając polskich znaków. Następnie używając skryptów php chciałam je wypisać na stronie i lipa... Tzn nie ma polskich znaków tylko jakieś krzaczki.
Na innych forach znalazłam, że powinnam wpisać coś w rodzaju :

ALTER TABLE t1 CHANGE c1 c1 VARCHAR(255) CHARACTER SET latin2;

(oczywiście z moimi danymi) ale wtedy mam błąd "sql syntax error near 'set latin2';

Przeczytałam również, że powinnam wywołać funkcję SET NAMES 'latin2'
Ale niestety też dostaję błąd że mam sytax error near latin2....

Co zrobić???

0

A jaka to wersja bazy danych? Z tego co się orientuję, ma to spory wpływ na działanie wszelkich takich bajerów. No i jeszcze druga sprawa - jakie kodowanie stosujesz na samej stronie (tej, którą generuje PHP).

0

A może spróbuj:
SET NAMES 'utf8';
oczywiście, jeśli chcesz jakieś latin2, czy coś wstawiasz to zamiast utf8 ;)

0

A jak to sprawdzić?

0

no pewno jak nie wiesz jak to sprawdzić to Windows-1250

0
Joanna W. napisał(a)

A jak to sprawdzić?

Jak co sprawdzić??
Jeśli chodzi Ci o kodowanie na stronie, to w nagłówku powinien być tag html:
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
gdzie Charset, to właśnie standart kodowania znaków.

0
id02009 napisał(a)

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

Miałam tak i wtedy były krzaki... pozbyłam się tej linijki... i nie ma krzaczków...

0

Jest jeszcze kwestia kodowania znaków w samym pliku :/
np. w notatniku, gdy wybierzesz 'zapisz jako...' poniżej jest combo box ;) z możliwością wyboru kodowania- to kodowanie musi sie zgadzac z tym co jeste wpisane w <meta...>

0
id02009 napisał(a)

Jest jeszcze kwestia kodowania znaków w samym pliku :/
np. w notatniku, gdy wybierzesz 'zapisz jako...' poniżej jest combo box ;) z możliwością wyboru kodowania- to kodowanie musi sie zgadzac z tym co jeste wpisane w <meta...>

oj zrobiłam, co mi powiedziałeś i się jeszcze bardziej rozkrzaczyło...

0

Nie ma jakieś funkcji, która zamienia "krzaki" na polskie znaki?

0

Hmm, to niestety nie potrafię Ci pomóc - ja jestem tylko trochę mniej zielonym webmasterem niż Ty ;]
Może, ktoś bardziej od nas doświadczony trafi n aten wątek ;)

0

Oki, bardzo Ci dziękuję, że próbowałeś mi pomóc... mam nadzieję, że ktoś się trafi i napisze.
I każdy kto do tej pory nie wie jak mi pomóc na tym skorzysta :)

0

Dobra, ten wątek to jakiś chaos, po kolei:

1. Najpierw musisz ustawić odpowiednie kodowanie w bazie danych, to jak to zrobisz zależy od wersji bazy. Możesz taką informacje uzyskać wywołując w php funkcje

phpinfo();

Gdy sie dowiesz, wróc tutaj, pomozemy Ci.

2. Teraz dodaj odpowiedni tag w dokumencie html

<meta http-equiv="Content-Type" content="text/html; charset=KODOWANIE" />

Zamiast KODOWANIE wpisz kodowanie jakiego używasz, jeżeli w bazie ustawisz latin2 to tutaj wpisz iso-8859-2, ale najlepiej korzystać z utf-8 bo w nim możesz zapisać wszystkie znaki we wszystkich językach i raz na zawsze pozbyć sie kłopotów z krzaczkami.

3. Sam tag meta to tylko informacja dla przeglądarki, musisz jeszcze ustawić 'fizycznie' kodowanie w dokumencie.

Jeśli skorzystasz z utf-8, otwórz dokument notatnikiem, wybierz plik->zapisz jako i w polu "kodowanie" wybierz "utf-8", jeśli korzystasz z latin2 (iso-8859-2) musisz użyć innego programu, np "notatnik sp"

0
Kooba napisał(a)

Jeśli skorzystasz z utf-8, otwórz dokument notatnikiem, wybierz plik->zapisz jako i w polu "kodowanie" wybierz "utf-8"

Jest jeden poważny problem z tym - Windowsowy Notatnik niepoprawnie zapisuje pliki w UTF (dorzuca jakieś swoje znaczniki na początek). Polecam program gżegżółka, który potrafi bardzo ładnie zmienić kodowanie. A - i jeszcze jedno - najlepiej zamieniać kodowanie na kopii, bo potem otworzenie pliku w utf-8 programem, który nie wspiera tego kodowania może skończyć się przemieszaniem kodowania i wtedy się zaczynają schody.

0

Ściągnęłam program Gżegżółka, przekonwertowałam go na UTF-8, zrobiłam charset= utf-8 i się wszystko rozkrzaczyło.

Jedyne przy czym się nie rozkrzacza (prbpwałam wszystkich opcji), to wpisanie
<meta http-equiv="Content-Type" content="text/html; charset=windows-1250" />

0

Ale są jeszcze dwie sprawy - kodowanie w bazie danych (takie, jak było kiedyś w skrypcie) i kodowanie w skrypcie (który po prawidłowej konwersji do utf-8 powinien się dobrze wyświetlać w utf-8).

0
Adam.Pilorz napisał(a)

Ale są jeszcze dwie sprawy - kodowanie w bazie danych (takie, jak było kiedyś w skrypcie) i kodowanie w skrypcie (który po prawidłowej konwersji do utf-8 powinien się dobrze wyświetlać w utf-8).

Testuję to na razie na stronie, która nie wczytuje z bazy. Strona kodowana w utf-8, zresztą tak jak napisałam wyżej. I nic ;-(

0

Hmm... A jakie kodowanie próbuje wyświetlić przeglądarka? Może podaj adres do strony i powiedz, jakiej przeglądarki używasz, będzie prościej. Bo póki co nie widzę powodu, dla którego mogłoby się tak dziać...

1 użytkowników online, w tym zalogowanych: 0, gości: 1