<html><body><div style="font-family: arial, helvetica, sans-serif; font-size: 10pt; color: #000000"><div><span id="zwchr" data-marker="__DIVIDER__">----- Il 25-feb-18, alle 16:55, Flavio Poletti <polettix@gmail.com> ha scritto:<br></span></div><div data-marker="__QUOTED_TEXT__"><blockquote style="border-left: 2px solid #1010FF; margin-left: 5px; padding-left: 5px; color: #000; font-weight: normal; font-style: normal; text-decoration: none; font-family: Helvetica,Arial,sans-serif; font-size: 12pt;" data-mce-style="border-left: 2px solid #1010FF; margin-left: 5px; padding-left: 5px; color: #000; font-weight: normal; font-style: normal; text-decoration: none; font-family: Helvetica,Arial,sans-serif; font-size: 12pt;"><div dir="ltr">Il giorno 25 febbraio 2018 11:43, Guido Brugnara <<a href="mailto:gdo@leader.it" target="_blank" data-mce-href="mailto:gdo@leader.it">gdo@leader.it</a>> ha scritto:<br>><br>> ----- Il 24-feb-18, alle 21:08, Guido Brugnara <a href="mailto:gdo@leader.it" target="_blank" data-mce-href="mailto:gdo@leader.it">gdo@leader.it</a> ha scritto:<br>><br>> > Nell'utilizzare il modulo Encode::GSM0338 ho riscontrato che se si codifica il<br>> > carattere "@" (code 0x00) la conversione da "gsm0338" non è corretta.<br>> > Nella documentazione infatti c'è scritto:<br>> >  "Mapping \x00 to '@' causes too much pain everywhere"<br>> ><br>> > Quale alternativa potrei utilizzare che non sia bacata come Encode::GSM0338?<br>><br>> In attesa di una soluzione più pulita ho escogitato un work-around:<br><br><div>Guardando il modulo e lo standard mi sembra che facciano due cose piuttosto differenti.</div><br><div>Ad esempio, il GSM 03.38 prevede che ciascun carattere consentito sia codificato con 7 bit, ma che poi vengano trasmessi ottetti (il che consente di ottenere i famosi 160 caratteri da un pezzo di canale in grado di mandare 140 ottetti). Se stai leggendo SMS direttamente da un dispositivo, o li devi mandare ad un dispositivo, probabilmente quel modulo non è quello giusto.</div></div></blockquote><div>Quel che devo fare è inviare ad un provider dei messaggi contenenti soltanto caratteri ammessi dal charset  GSM 03.38 ma li devo comunque inviare UTF8.</div><div>Devo anche calcolare il costo (quindi il numero di SMS necessari) e perciò devo calcolare quanto sarà lungo il messaggio codificato.</div><div><br></div><div><div>Guardando il codice in <a href="https://metacpan.org/pod/Device::Gsm" target="_blank" data-mce-href="https://metacpan.org/pod/Device::Gsm">Device::Gsm</a> c'è annotato "content => 'text-only for now'" e infatti nell'implementazione di Device::Gsm::Charset non c'è traccia di tutti i caratteri speciali codificati in due byte utilizzando ESC; manca ad esempio il simbolo € (Euro).<br></div><div>Purtroppo per questo non lo posso utilizzare.</div><div><br></div>La tabella a cui mi devo attenere è questa:</div><div>   https://en.wikipedia.org/wiki/GSM_03.38#Spanish_language_(Latin_script)</div><div><br></div><div>Il moduloEncode::GSM0338 converte i caratteri usando proprio questa codifica e funziona a parte il problema riscontrato con il carattere @, che aggiro con il codice che ho mostrato nella mail precedente.<br></div><div><br></div>bye</div><div data-marker="__QUOTED_TEXT__">gdo</div><div data-marker="__QUOTED_TEXT__"><br><blockquote style="border-left: 2px solid #1010FF; margin-left: 5px; padding-left: 5px; color: #000; font-weight: normal; font-style: normal; text-decoration: none; font-family: Helvetica,Arial,sans-serif; font-size: 12pt;" data-mce-style="border-left: 2px solid #1010FF; margin-left: 5px; padding-left: 5px; color: #000; font-weight: normal; font-style: normal; text-decoration: none; font-family: Helvetica,Arial,sans-serif; font-size: 12pt;"><div dir="ltr"><div>Cosimo ha pubblicato Device::GSM dove forse puoi trovare qualcosa più in linea con lo standard (<a href="https://metacpan.org/pod/Device::Gsm" target="_blank" data-mce-href="https://metacpan.org/pod/Device::Gsm">https://metacpan.org/pod/Device::Gsm</a>).</div><br><div>Ciao,</div><br><div>    Flavio.</div></div><br></blockquote></div></div></body></html>