![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 4 Pomógł: 0 Dołączył: 9.09.2010 Ostrzeżenie: (0%) ![]() ![]() |
Potrzebuję pomocy z kodowaniem znaków w mysql-u. Nie zajmuję się zawodowo PHP, więc całkiem możliwe, że robię coś nie tak już u podstaw. Próbowałem już wielu możliwości, ale żadna nie pomaga. (IMG:style_emoticons/default/sciana.gif)
Standardowo mój kod wygląda mniej więcej tak:
Pewnie zbyt dużo tam tych SET, ale zacząłem już dokładać wszystko co mogło by coś zmienić... (IMG:style_emoticons/default/wstydnis.gif) Potem uznałem, że może biblioteka PDO coś nie tegest jest, więc zrobiłem to tak:
Na bazie wykonywałem:
oraz sprawdzałem kodowanie przez:
phpMyAdmin pokazuje to samo. Na stronie w nagłóku mam:
Baza, Apache i PHP postawione są na Debianie. Jak zrobię zapytanie z palca do bazy, to polskie znaki są widoczne w tabeli. Nie mam już kompletnie pomysłu co może być nie tak... Proszę o pomoc. Z góry dziękuję! |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 4 Pomógł: 0 Dołączył: 9.09.2010 Ostrzeżenie: (0%) ![]() ![]() |
Ta funkcja zwraca: ASCII, czyli coś nie tak jest jeszcze przed wysłaniem do bazy... Teraz kwestia przerobienia tego na UTF-8. Postaram się nad tym popracować i dam znać, czy mi się udało. Dzięki!
EDIT: Chyba jednak jakieś bzdury piszę...
Jak powinienm to przekonwertować? "w jakim kodowaniu są w bazie oraz w jakim są pobierane z bazy i wyświetlane na stronie" W bazie są już krzaki, więc chyba nie ma sensu przechodzić do sprawdzania jak są wyświetlane. Po kilku próbach zrobiłem jeszcze tak:
I wynik mam taki: Kodowanie z POST: UTF-8 Kodowanie zapytania: ASCII To chyba wszystko wyjaśnia. Dane przychodzą poprawne, ale już tworzone zapytanie nie jest poprawne. Dobrze to rozumiem? Jeśli tak, to w jaki sposób zmusić zmienną $zapytanko do poprawnego kodowania? Funkcja utf8_encode jakoś nie ma ochoty zadziałać, jak widać. EDIT Przepraszam, że tak wam marudzę, ale próbowałem jeszcze wielu porad, które znalazłem i nadal to nie działa. (IMG:style_emoticons/default/sadsmiley02.gif) Żeby wszystko było jasne, to przedstawię na jakim jestem aktualnie etapie: Na bazie próbowałem ustawiać różnego kodowania, aktualnie zostało: utf8_unicode_ci Dla pewności zastosowałem już wszystko co się dało do kodowania ba bazie:
Strona powinna być kodowana poprawnie: Po pobraniu danych sprawdzam jak są kodowane:
i potem wysłanie do bazy: Po wykonaniu powyższego wyświetla mi się zapytanko: INSERT INTO `markety` (`nazwa`, `numer`, `ip`, `lokalizacja`, `adres`, `vlan`, `telefon`, `numertp`) VALUES('aąeęążźś','9960','10.51.99.0','','',0,'','')zapytanko: INSERT INTO `markety` (`nazwa`, `numer`, `ip`, `lokalizacja`, `adres`, `vlan`, `telefon`, `numertp`) VALUES('aąeęążźś','9960','10.51.99.0','','',0,'','') Kodowanie zapytania: UTF-8 nazw: aaąeęążźś Po: UTF-8 nazwa z POSTaąeęążźś Kodowanie z POST: UTF-8 Zgodnie z tym, co pisałeś Pilsener, przetestowałem kodowanie w każdym miejscu po drodza i jak widać, wszystko jest OK - UTF-8, polskie znaki. Niestety w bazie są tylko krzaki.... nazwa => a?e?(IMG:style_emoticons/default/questionmark.gif) (IMG:style_emoticons/default/questionmark.gif) Bardzo proszę o pomoc, bo nie potrafię sobie z tym poradzić (IMG:style_emoticons/default/sadsmiley02.gif) EDIT Ruszyło się do przodu!! (IMG:style_emoticons/default/smile.gif) Po wielu walkach (z serwerem na Debianie włącznie). Zaczęło częściowo działać! Ostatecznie wygląda to tak, że dane, które wpadają do bazy są wcześniej kodowane przez utf8_encode a po wyjęciu z bazy dekodowane przez utf8_decode. Działa to dla części znaków, jak óźż, ale krzaki robią się dla ąę. Ktoś wie co może być nie tak? DOBRA! Widzę, że na tym forum nie ma co liczyć na pomoc... Dzięki! Ten post edytował rysic 30.09.2010, 14:06:24 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 3.10.2025 - 07:49 |