Autor Zpráva
Medvídek
Profil
Nesetkal se někdo se skládáním UCS-2 SMS zpráv? (Nebo i 7 bitových).
Mam modem se simkou, v perlu si posílám všechny příchozí SMS na url, kde předávám typ SMS, jestli jde o obyč 7bit, nebo UCS-2 s diakritikou. Pokud pošlu SMS 7bit která se vejde do 160 znaků, nebo UCS-2 do 70 znaků, vše je v pořádku. Bohužel při delších se přidává na začátek SMS informace asi o počtu SMS a pozici dané SMS. Ale nikde sem se nedočetl, jak toto dekódovat. Ono by mi bohatě stačilo detekovat, že se jedná o rozloženou SMS a já bych jí automaticky zahazoval a nezapisoval do DB, ale raději bych se naučil skládat ty SMSky :)

Nyní mát tento kód:

$text=base64_decode($_GET["text"]);
$text=$_GET["type"]==2 ? mb_convert_encoding($text, "UTF-8", "UCS-2") : $text;

Pokud přijde SMSka, která má více částí, vznikne mi toto:
"jak svetleji... Ale hl...

A nevím, jak detekovat (popřípadě jak dekódovat) ten začátek zprávy, který je vždy tořen po převodu do UTF-8 tímto: "
Jan Tvrdík
Profil
Medvídek:
Na stránce http://en.wikipedia.org/wiki/SMS se píše.

Larger content (concatenated SMS, multipart or segmented SMS, or "long SMS") can be sent using multiple messages, in which case each message will start with a user data header (UDH) containing segmentation information. Since UDH is part of the payload, the number of available characters per segment is lower: 153 for 7-bit encoding, 134 for 8-bit encoding and 67 for 16-bit encoding.

Podrobněji je to rozepsáno v samostatném článku.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: