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 (1 - 4)
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
KR2615
post
Post #3





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

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


Super, dzięki (IMG:style_emoticons/default/smile.gif) Jeszcze się tylko zastanawiam, jak nauczyć ten skrypt PHP odróżniać SMSy zakodowane w ten sposób od zwykłych SMSów.
Go to the top of the page
+Quote Post
kapslokk
post
Post #4





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

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


Smsy zakodowane będą posiadały tylko duże litery od A do F i cyfry. Może po tym?
Go to the top of the page
+Quote Post
KR2615
post
Post #5





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

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


Mozna by przepuszczac przez niego wszystie SMSY. Zauwazylem, ze dla stringa "Zwykly tekst" zwraca po prostu "Zwykly tekst". Co innego dla stringa "DACAN Patryk: 505123456 " Jesli wlapie czteroznakowy ciag cyfr badz HEXów probuje go konwertowac.

Ten post edytował KR2615 2.09.2015, 11:42:00
Go to the top of the page
+Quote Post

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: 25.08.2025 - 01:29