Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Konwerter znaków
KR2615
post
Post #1





Grupa: Zarejestrowani
Postów: 311
Pomógł: 13
Dołączył: 7.05.2007

Ostrzeżenie: (0%)
-----


Witajcie. Dzisiaj bawię się bramką SMS Portecha. Jest to fizyczne urządzenie, prawdopodobnie produkcji radzieckiej (IMG:style_emoticons/default/smile.gif) z 1999 roku. Pobieram z niego treści SMSów telnetem i dalej przekazuję do skryptu PHP. Wszystko jest OK do puki w SMSie nie pojawi się polski znak. Wtedy cała wiadomość wygląda mniej więcej tak:
Cytat
004E0069006500200063006800630065002000730069011900200064006F0077006900650064007A
00690065010700200063007A0079002000740065017C0020006E0069006500200

Testowo wysłałem wiadomość składającą się tylko z dużego Ż z kropką. Otrzymałem:
Cytat
017B

Czy ktoś z Was mógłby podrzucić funkcję konwertującą te dziwne znaki do ludzkiego formatu? Z góry dzięki!
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
kapslokk
post
Post #2





Grupa: Zarejestrowani
Postów: 965
Pomógł: 285
Dołączył: 19.06.2015
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


  1. echo mb_convert_encoding('Ż', 'UTF-8', 'HTML-ENTITIES');


Za 017B wstawiasz sobie kolejne 4 znaki z tego ciągu.
Kwestia tego, żeby rozbić string co 4 znaki.

Funkcja na szybko:

  1. function convertString($string){
  2. $string = preg_replace('/([A-F0-9]{4})/', '&#x$1;', $string);
  3. return mb_convert_encoding($string, 'UTF-8', 'HTML-ENTITIES');
  4. }


Ten post edytował kapslokk 2.09.2015, 11:04:37
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 11.10.2025 - 16:21