![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 7 Pomógł: 0 Dołączył: 26.11.2007 Ostrzeżenie: (0%) ![]() ![]() |
Mam problem, otóż nie wyświetla mi polskich znaków przy pobieraniu danych z bazy. Kodowanie w bazie mam ustawione na latin2 (wybrałem przy instalacji).
W pliku index.php mam tak: if(!($bz_link=mysql_connect("baza", "uzytkownik", "haslo"))) { print("<br><br><center>Nie można połączyć się z bazą danych!</center><br>"); exit(); } mysql_query("SET NAMES latin2"); (tutaj znajdują się dalsze instrukcje) Kodowanie ustawione w nagłówku na stronie to: <meta http-equiv="Content-type" content="text/html; char=iso-8859-2"> Mimo to nadal pojawiają się krzaki zamiast polskich liter jak pobieram dane z bazy. W bazie mam polskie litery ale na stronie nie. Wie ktoś dlaczego tak jest i jak sobie z tym poradzić? Ten post edytował hagi0 26.11.2007, 00:30:27 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Przyjaciele php.pl Postów: 2 335 Pomógł: 6 Dołączył: 7.03.2002 Ostrzeżenie: (0%) ![]() ![]() |
Sprawdz jaka masz ustawiona metode porywnywania znakow na kolumnie z tekstem.
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 7 Pomógł: 0 Dołączył: 26.11.2007 Ostrzeżenie: (0%) ![]() ![]() |
wpisując w konsoli mysql polecenie: show variables like 'collation%' pokazuje mi tabelke w której mam wszystkie zmienne ustawione na latin2_general_ci (dokładnie 3 zmienne: collation_connection, collation_database i collation_server), o to ci chodziło?
|
|
|
![]()
Post
#4
|
|
Grupa: Przyjaciele php.pl Postów: 2 335 Pomógł: 6 Dołączył: 7.03.2002 Ostrzeżenie: (0%) ![]() ![]() |
Jestem zbyt leniwy aby spamietac komendy mysqlowe (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) , dlatego podrzucam screen z phpMyAdmina, w ktorym wyrozniona jest sekcja "metoda porownywania napisow" dla wybranej kolumny w tabeli:
(IMG:http://webarchitect.pl/tmp/napisy.png) W przypadku gdy masz to ustawione inaczej nie uzyskasz wlasciwych znakow. Ten post edytował Seth 26.11.2007, 00:56:58 |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 7 Pomógł: 0 Dołączył: 26.11.2007 Ostrzeżenie: (0%) ![]() ![]() |
to nie jest chyba wina porównywania napisów ponieważ stworzyłem nową bazę w konsoli mysql z opcjami default character set latin2 collation latin2_general_ci (oraz tabele do niej z tymi samymi opcjami) i dalej jest tak sam tz. w bazie ok a na stronie kicha...
jeszcze jedna (może przydatna) informacja otóż: wpisując w konsoli mysql polecenie show variables like 'character%' pokazuje sie tabelka, w której wszystkie pozycje mają wartość latin2 oprócz ostatniej, która ma utf8 (jest to zmienna character_set_system).. Ten post edytował hagi0 26.11.2007, 02:39:27 |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 398 Pomógł: 10 Dołączył: 24.11.2004 Skąd: Łódź Ostrzeżenie: (0%) ![]() ![]() |
Jezeli wykonujesz wszystkie operacje z wiersza polecen moze poczytaj jeszcze to:
http://www.bluetwanger.de/blog/2006/11/20/...question-marks/ w szczegolnosci zwroc uwage na "Which character set do you need for the command line?". Dodatkowo sprawdz jeszcze to: http://dev.mysql.com/doc/refman/5.0/en/cha...connection.html |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 7 Pomógł: 0 Dołączył: 26.11.2007 Ostrzeżenie: (0%) ![]() ![]() |
no posprawdzałem, ale dalej kicha, niby wydaje się że wszystko jest ok (wszystkie zmienne character_set w konsoli ustawione na latin2 tylko ostatni character_set_system na utf8, zmienne collation na latin2_general_ci, kodowanie na stronie ISO-8859-2, nawet spróbowałem przy tworzeniu baz i tabel dodawać opcje default character set latin2 i collation latin2_general_ci). Wszystko jednak na nic, w bazie dane ok, ale na stronie pytajniki i puste prostokąty (jak dodaje w skrypcie opcje mysql_query("SET CHARACTER SET latin2"); to pojawiają się jakieś krzaki). Pomóżcie ktoś.....
Ten post edytował hagi0 26.11.2007, 13:45:17 |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 398 Pomógł: 10 Dołączył: 24.11.2004 Skąd: Łódź Ostrzeżenie: (0%) ![]() ![]() |
Przy dodawaniu rekordow z konsoli sprobuj dac
dlatego ze Cytat Upon arriving on the server, your data will be converted from CP1250 to ISO-8859-2. Results returned to you will be converted from ISO-8859-2 to CP1250. .Pamietaj ze wiersz polecen windows pracuje w CP1250. |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 7 Pomógł: 0 Dołączył: 26.11.2007 Ostrzeżenie: (0%) ![]() ![]() |
tak to jest problem z konsolą windowsa, bo jak przeinstalowałem mysql (w opcji wybrałem cp1250 zamiast latin2), i ustawiłem na stronie: <meta http-equiv="Content-type" content="text/html; charset=windows-1250"> a po połączeniu: mysql_query("set names cp1250"); i zacząłem dodawać dane z konsoli to w konsoli było dobrze a na stronie źle, natomiast jak stworzyłem w skrypcie PHP zapytanie, które wstawia do bazy wiersz (zawierający polskie znaki) to na stronie było wszystko ok (tz. były poprawnie widoczne polskie znaki), ale w bazie (przeglądanej w konsoli) pokazywało w tych dodanych wierszach ze strony krzaki zamiast polskich liter.
Ten post edytował hagi0 26.11.2007, 15:55:43 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 15.09.2025 - 01:12 |