Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php/Mysql]problem z kodowaniem polskie znaki
Forum PHP.pl > Forum > PHP
kali985
Witam odkąd używam mysqla to zawsze mam problemy z wyświetlaniem polskich znaków.
Sam php śmiga dobrze bo wystarczy ze ustawie kodowanie na europe środkową charset=iso-8859-2
Ale jak ustawić w PhP my Adminie kodowanie aby mi zapisywało do bazy polskie znaki i zeby na stronie tez sie wyświetlały....

Może ktoś sie podzieli jake sam ma ustawienia ...

pozdrawiam smile.gif
misiek172
musisz zmienić metode porównywania znaków ale nie wiem na jaką..

^^ CHYBA ! biggrin.gif

ale po co? A jesli nie lubisz uzywac tego: charset=iso-8859-2

to sobie wcześniej napisz funkcje która będize zamieniała te krzaczki na polskie literki.
kali985
Cytat(misiek172 @ 2.03.2007, 12:39:34 ) *
musisz zmienić metode porównywania znaków ale nie wiem na jaką..



no to wiem tylko na jaką metodę ... probowałem kilka .... i jeszcze gorzej sie robi ... najlepiej przy tworzeniu tabel od razu wybrać prawidłową i mieć spokój .... tylko teraz muszę sie dowiedzieć na jaką questionmark.gif

napisze ktoś inny na nurtujące mnie pytanie ?

pozdrawiam smile.gif
misiek172
niewiem czy nie trzeba doinstalować ...
jarmiar
Cytat(misiek172 @ 2.03.2007, 13:14:45 ) *
niewiem czy nie trzeba doinstalować ...


bzdury! w phpMyAdminie wybierasz system porównywania napisów na latin2_ci_general lub latin2_ci

i wszystko powinno działać
Dawid-San
przed dodaniem danych do tabeli, spróbuj dac to:
Kod
$zapytanie = mysql_query('SET CHARSET iso-8859-2')


Powinno załatwić sprawę


edit/ skorzystam z okazi. a jak napisać funkcję która zamieniałaby krzaczki na polskie znaki?
webdice
Cytat(Dawid-San @ 2.03.2007, 19:48:15 ) *
przed dodaniem danych do tabeli, spróbuj dac to:
Kod
$zapytanie = mysql_query('SET CHARSET iso-8859-2')


Powinno załatwić sprawę
edit/ skorzystam z okazi. a jak napisać funkcję która zamieniałaby krzaczki na polskie znaki?


Nie ma czegoś takiego, jak coś to

Kod
mysql_query('SET CHARSET latin2')


Poza tym na forum było to już kilkanaście razy, jak Ci te tematy nic nie pomogą to pozostaje Ci jeszcze google, a jak Ci google nie pomogą to nie da się tego zrobić winksmiley.jpg Kombinuj sam, próbuj, zmieniaj, itp, a na pewno zadziała.
Dawid-San
web jak to nie ma? Mam to w swoim skrypcie i działa....tylko, że ja mam tam utf-8. Więc nie rozumiem o co ci chodzi. Zresztą spróbuj w phpMyAdmin zmienić porównywanie znaków w tabeli to zobaczysz, że takie zapytanie istnieje
lvs
Mialem podobny problem, co sie okazalo...
Przy tworzeniu tabeli, trzeba wybrac dobre porownywanie znakow.
Ja wybralem UFT8_general_ci.
Przy wyswietlaniu strony www musi byc wpis:

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


przed kazdym zapytaniem mysql wstawilem cos takiego:
Kod
mysql_query("SET NAMES 'utf8'");


i wszystko polskie znaczki smigaja b.dobrze smile.gif
kali985
http://forum.php.pl/index.php?showtopic=31881

tutaj macie link to podobnego tematu

dzięki ci lvs ... za chwilkę sprawdzę czy działa bo właśnie zmieniłem phpmyadmina na starszą wersje i zabieram sie do pracy smile.gif

pozdrawiam smile.gif

teraz mam nowy problem smile.gif

juz wiem ze jestem blisko ale jeszcze potrzebuje waszej pomocy

teraz dobrze mi zapisuje do bazy danych bo polskie znaki zamienia na ich odpowiedniki w unicode tylko jak wyświetlam z bazy to mi nie chce ich przywrócić

pojawia sie coś takiego po wyświetleniu na stronie bo nie chce mi poprawnie wyświetlić

  1. <?php
  2. Do&#322;ek 
  3. ?>


a powinno być - dołek
wiec coś namieszałem znów z kodowaniem ma stronie
Whisller
Przy pobieraniu jak i wstawianiu danych użyj SET NAMES -twoje kodowanie-,
pamiętaj aby tabela w bazie miała takie same.
webdice
Cytat(Dawid-San @ 3.03.2007, 09:37:54 ) *
web jak to nie ma? Mam to w swoim skrypcie i działa....tylko, że ja mam tam utf-8. Więc nie rozumiem o co ci chodzi. Zresztą spróbuj w phpMyAdmin zmienić porównywanie znaków w tabeli to zobaczysz, że takie zapytanie istnieje


Odpowiednikiem ISO-8859-2 jest latin2 i tak się zapisuje.

Co do tematu to najpierw spróbujcie ustawić SET NAMES i DEFAULT CHARSET, pamiętajcie aby baza i tabele miały takie samo kodowanie.
Saladin
Przy wgrywaniu pliku backup (sql) zapisz go do iso859-2, polecam do tego użyć chociażby Grzegżółki (www.gzegzolka.com - możemy poznać że dobrze się zapisało, gdyż np. ą zamienia się w ą).
Teraz wchodzimy do phpmyadmin, zakladka SQL, wskazujemy plik sql, a "System kodowanie znaków dla pliku:" ustawiamy na latin1/2 - zależnie na czym masz tabelki. Tadam.
Cytat
mysql_query("SET NAMES 'utf8'");
Wystarczy zaraz po połączeniu z bazą danych, nie ma sensu przed każdym zapytaniem.
kali985
jesssst po 2ch dniach wreszcie zwycięstwo!!!
Okazało sie ze kodowanie było cały czas dobre

udało sie ... rozwiązaniem ostatniego problemu było usuniecie funkcji

htmlspecialchars() która mi ostro mieszała
zastosowałem ją przed wprowadzeniem danych do bazy i to był błąd smile.gif

dziekuję wszystkim za wypowiedzi i bezinteresowną pomoc a szczególnie lvs-owi który mi najwięcej pomógł i zasugerował trafne rozwiązanie

pozdrawiam smile.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.