On 3/15/16, cesar.bret...@estudiantes.upr.edu.cu <cesar.bret...@estudiantes.upr.edu.cu> wrote: > eso no es problema de tu telefono, eso pasa porque los caracteres con tilde > son caracteres especiales, y ocupan mas espacio, una mayuscula con tilde > ocupa como 12 o 17 bits o algo asi, y una minuscula, creo q son 8, no estoy > claro,
No es tan así todo el tiempo . Trataré de explicar . Longitud del mensaje SMS [1]_ [2]_ CBS - 82 bytes = 656 bits => 93 caracteres SMS - 140 bytes = 1120 bits => 160 caracteres USSD - 160 bytes = 1280 bits => 182 caracteres Los límites antes mencionados consideran el uso del alfabeto que debería estar predeterminado para SMS sobre GSM (i.e. GSM 03.38 a.k.a. 3GPP 23.038) [2]_ . Algunos caracteres (e.g. é É ñ ¿) entran en esos 7 bits d base (pues m da la impresión q el diseño d esto es muy europeo , francés, alemán y/o escandinavo ya que ahí entran letras como Å ß å ä ö ü Ä Ö Ü y las vocales con <fr>accent aigú</fr>) . Cuando se configura uno d ciertos lenguajes (e.g. español , portugués , turco , ...) se activa lo q se conoce como "national language shift table" *si el dispositivo tiene soporte para esto* al nivel del sistema operativo + app . En la tabla del español se añaden otros caracteres (e.g. Á á Í í Ó ó Ú ú) que ocupan 14 bits (0x10B + <caracter d 7 bits>) Sin embargo hay otras dos opciones . Una es usar el alfabeto de 8 bits y considerar el mensaje como datos crudos que procesa la aplicación de mensajería . Si se usa UTF-16 entonces los caracteres en el plano BMP d Unicode [3]_ siempre se llevarán 2 bytes , mientras q si se usa UTF-8 pueden llegar a ocupar 3 bytes pero es válido decir que los caracteres ASCII siempre se llevarán 8 bits. Unicode [4]_ tiene 16 planos (q sinceramente son una locura y no comprendo del todo bien) así q no m dedicaré a explicar lo q pudiera pasar con los demás caracteres fuera del BMP (no sé si haya aficionados al chino , árabe , indio , ... subscritos a la lista) . La segunda opción es usar UCS-2 [5]_ . En ese caso todos los caracteres se llevan 2 bytes pero , estrictamente hablando , no todos los caracteres Unicode pueden ser representados (aunq quizás no se necesiten) . UCS-2 está obsoleto , pero todavía en uso . D hecho UTF-16 consiste básicamente en codificar en 16 bits los codepoints de UCS-2 y utilizar 4 x 8 bits = 32 bits para los caracteres Unicode q no caben ahí . > solucion?, escribe sin tildes y se te resolvio el problema... > Esta es una opción . La otra es buscar una aplicación q use la extensión del español del GSM 03.38 ( pero sinceramente no sabría recomendar una ahora mismo ) . La otra es q la aplicación use UCS-2 y todos los caracteres serán d 16 bits . La otra es hacer q los mensajes se envíen en formato crudo y configurar la app para q utilice UTF-16 . Posiblemente hay más conbinaciones posibles . p.s. los límites q mencioné más arriba se corresponden al envío d un solo mensaje (datagram) de GSM , pues es preciso aclarar q un solo "mensaje de texto" puede ser enviado en múltiples datagramas , pero eso es off-topic .. [1] https://en.wikipedia.org/wiki/Short_Message_Service#Message_size .. [2] https://en.wikipedia.org/wiki/GSM_03.38 .. [3] https://en.wikipedia.org/wiki/Plane_(Unicode)#Basic_Multilingual_Plane .. [4] https://en.wikipedia.org/wiki/Unicode -- Regards, Olemis - @olemislc Apache™ Bloodhound contributor http://issues.apache.org/bloodhound http://blood-hound.net Brython committer http://brython.info http://github.com/brython-dev/brython Blog ES: http://simelo-es.blogspot.com/ Blog EN: http://simelo-en.blogspot.com/ Featured article: ______________________________________________________________________ Lista de correos del Grupo de Usuarios de Tecnologías Libres de Cuba. Gutl-l@jovenclub.cu https://listas.jovenclub.cu/cgi-bin/mailman/listinfo/gutl-l