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

Responder a