![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 1 Pomógł: 0 Dołączył: 14.01.2006 Ostrzeżenie: (0%) ![]() ![]() |
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! |
|
|
![]() |
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 677 Pomógł: 89 Dołączył: 31.08.2003 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
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ę ![]() -------------------- |
|
|
![]() ![]() |
![]() |
Aktualny czas: 20.08.2025 - 04:26 |