Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [WML] WML & WAP - Prośba o pomoc!
Forum PHP.pl > Forum > XML, AJAX > XML
djgruby
Mam problem. I potrzebuję pomocy. Próbowałem rozgryźć w czym rzecz przez ostatnie kilka godzin. Bez skutku. Sprawa wygląda tak...

Tworzę sobie stronkę w WML-u. Jest na niej formularz... A dokładnie pole, w którym należy wpisać imię i nazwisko:

<input type="text" name="imie" />

I teraz, pytanie brzmi... Czy istnieje możliwość wpisania na komórce polskich znaków w tym polu? Korzystając z dobrodziejstw "Opery", która potrafi poprawnie interpretować WML-a, stronkę testuję właśnie w tej przeglądarce, a nie w prawdziwym aparacie telefonicznym (decydują względy finansowe). Po wpisaniu w "Operze" sekwencji znaków w postaci ążśźęćńółĄŻŚŹĆŃÓŁ i wysłaniu ich za pomocą tego formularza, docelowy skrypt odbiera przedziwną sekwencję w postaci %05%7C%5B%7A%19%07%44%F3%42%04%7B%5A%79%18%06%43%D3%41.

Przeczesałem najpopularniejsze "standardy" polskich znaków (ISO-8859-2, Windows-EE, IBM (CP852), Mazovia), ale w żadnym z nich polskie znaki nie są kodowane takimi wartościami! Po bliższym przyjrzeniu się standardowi Unicode, zauważam, że to jest tak jakby to... No, prawie... Bo w Unicode polskie znaki są kodowane na dwóch bajtach. W przesyłanym formularzu brakuje zatem starszego bajtu dla każdego ze znaków. Jak? Skąd? Dlaczego? Nie potrafię sobie poradzić. Jeśli chodzi o kodowanie znaków, we wszystkich swoich dokumentach stosuję UTF-8:

<?xml version="1.0" encoding="utf-8" ?>

Jeżeli ktoś spotkał się z tym problemem już wcześniej, byłbym dozgonnie wdzięczny za podzielenie się ze mną jakimiś informacjami, które pomogłyby mi wybrnąć z kryzysu.

Z góry bardzo dziękuję! Pozdrawiam!
mls
Strona docelowa odbierze polskie znaki w standardzie takim, w jakim zostały wysłane. A wysłane są w takim, w jakim jest cała strona - czyli w tym przypadku UTF-8.

Co do samych znaków - we wszystkich poza "ó" i "Ó" brakuje pierwszego bajtu - %01. Dla "ó" i "Ó" pierwszy bajt wynosi %00 więc można go pominąć.

Osobiście na stronach WAP przy zapisywaniu polskich znaków (do bazy danych) przeprowadzam ich konwersję na ISO-8859-2 (iconv" title="Zobacz w manualu php" target="_manual lub mb_convert_encoding" title="Zobacz w manualu php" target="_manual są w sam raz), a przy odczycie wszystkie polskie znaki są konwertowane do UTF-8 i zamieniane na encje.

W razie problemów pisz na priv, może pomogę 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.