![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 50 Pomógł: 0 Dołączył: 18.05.2003 Ostrzeżenie: (0%) ![]() ![]() |
WItam,
Zainteresowałem się klasą MyMenuGen, (http://www.phpclasses.org/browse/package/3778.html) która generuje automatycznie menu rozwijane. Używa PHP i MySQL. Największy problem sprawiają mi polskie znaki w menu. Wpisując np. Strona główna pojawiają się krzaczki, natomiast w bazie danych wartość ta zapisuje się następująco: Strona główna Klasa przedstawia się bardzo obiecująco. Panel administracyjny pozwala na dodawanie nowych pozycji do bazy. Chciałem to wykorzystać w moim projekcie, lecz przeszkodą są te polskie znaki. Może ktoś z was zna inną klasę która działa by podobnie lub zetkną się z MyMenuGen i potrafi mi pomóc. Pozdrawaim Ravczy Pod tym linkiem http://lesinski.biz/projekty/menu/example2.php każdy może potestować ten skrypt i sprawdzić jego działanie. Może się ktoś do niego przekona i pomoże w rozwiązaniu problemu ![]() |
|
|
![]() |
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 1 387 Pomógł: 273 Dołączył: 18.02.2008 Ostrzeżenie: (0%) ![]() ![]() |
Spróbuj na samym początku zaraz po podłączeniu do bazy wykonwywać zapytanie:
Bo prawdopodobnie działa ona teraz na latin2. Problem w tym, że w swoich projektach będziesz musiał zrezygnować z kodowania ISO na rzecz UTF-8. -------------------- XMPP: l0ud@chrome.pl
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 50 Pomógł: 0 Dołączył: 18.05.2003 Ostrzeżenie: (0%) ![]() ![]() |
w dokumencie XHTML mam zdeklarowany język polski oraz kodowanie utf-8. Dodałem SET NAMES utf-8, ale to niestety nie pomaga. Faktycznie jest coś na styku przeglądarka a baza danych.
Dziwne jest to co pojawia się w bazie danych, czyli znaki typu : ÅÄ Å zamiast śąś zawsze poawialy się znaki zapytania, albo coś w tym stylu. Wałczę z tym już kilka godzin i nadal bezskutecznie. Zauważyłem też jedną rzecz. Jeśli dane zmienie z PHPMYADMIN to polskie znaki się ładnie wyświetlają. Jeżeli chociażby dokonam edycji danych przez formularz na stronie, to znaki znowu się posypują i pojawiają się znaczki. Pod dłuższym czasie doszedłem do wniosku, że to nie wina kodowania po stronie MySQL ani PHP. Okazało się, że autor klasy użył funkcji html_entity_decode, co powodowało dziwne zachowanie całości kodu. Przy metodzie $myMenu->generateMenuStructure autor nie użył tej funkcji i stąd cały problem. Wystarczyło wywołać metode poprzez html_entity_decode($myMenu->generateMenuStructure(), ENT_QUOTES); i wszystko gra ![]() w example.php w lini około 94 trzeba użyć też html_entity_decode($myMenu->menu_title, ENT_QUOTES); Pozdrawaim |
|
|
![]() ![]() |
![]() |
Aktualny czas: 22.08.2025 - 03:55 |