stringtranslate.com

GSM 03.38

En telefonía móvil GSM 03.38 o 3GPP 23.038 es una codificación de caracteres utilizada en redes GSM para SMS (Servicio de mensajes cortos), CB ( Difusión celular ) y USSD (Datos de servicio suplementario no estructurados). El estándar 3GPP TS 23.038 (originalmente recomendación GSM 03.38) define el alfabeto GSM predeterminado de 7 bits que es obligatorio para teléfonos y elementos de red GSM, [1] pero el juego de caracteres solo es adecuado para inglés y varios idiomas de Europa occidental. Idiomas como chino, coreano o japonés deben transferirse utilizando la codificación de caracteres UCS-2 de 16 bits . Un número limitado de idiomas, como el portugués , el español , el turco y varios idiomas utilizados en la India escritos con escrituras brahmicas, pueden utilizar codificación de 7 bits con una tabla de cambio de idioma nacional definida en 3GPP 23.038. Para mensajes binarios , se utiliza codificación de 8 bits.

Alfabeto predeterminado GSM de 7 bits y tabla de extensiones de 3GPP TS 23.038 / GSM 03.38

La codificación estándar para mensajes GSM es el alfabeto predeterminado de 7 bits, tal como se define en la recomendación 23.038.

Los caracteres de siete bits deben codificarse en octetos siguiendo uno de tres modos de empaquetado:

Es importante (especialmente cuando un mensaje se va a segmentar mediante un mecanismo de SMS concatenado ) que los caracteres de la tabla del Juego de caracteres básicos ocupen un septeto, y los caracteres de la tabla de Extensión del juego de caracteres básicos ocupen dos septetos.

Tenga en cuenta que solo se puede acceder a la segunda parte de la tabla si el dispositivo GSM admite el mecanismo de extensión de 7 bits, utilizando el prefijo de caracteres ESC. De lo contrario, el código ESC en sí se interpreta como un espacio y el siguiente carácter se tratará como si no hubiera ningún código ESC inicial.

La mayor parte de la parte superior de la tabla no se utiliza en el juego de caracteres predeterminado, pero el estándar GSM define algunos indicadores de código de idioma que permiten al sistema identificar variantes nacionales de esta parte para admitir más caracteres que los que se muestran en la tabla anterior.

En un mensaje de texto GSM estándar, todos los caracteres se codifican utilizando unidades de código de 7 bits, empaquetadas para llenar todos los bits de los octetos. Así, por ejemplo, el sobre de 140 octetos de un SMS , [3] sin otro indicador de idioma sino sólo el prefijo de clase estándar, puede transportar hasta (140*8)/7=160, es decir 160 GSM de 7 bits. caracteres (pero tenga en cuenta que el código ESC cuenta para uno de ellos, si se utilizan caracteres en la parte superior de la tabla).

Se pueden enviar mensajes más largos, pero requerirán un prefijo de continuación y un número de secuencia en los mensajes SMS posteriores (estos bytes de prefijo y número de secuencia se cuentan dentro de la longitud máxima de la carga útil de 140 octetos del formato del sobre).

Cuando hay de 1 a 6 bits de repuesto en el último octeto de un mensaje, estos bits se ponen a cero (estos bits no cuentan como un carácter sino sólo como un relleno). Cuando hay 7 bits de repuesto en el último octeto de un mensaje, estos bits se establecen en el código de 7 bits del control CR (también utilizado como relleno) en lugar de establecerse en cero (donde se confundirían con el Código de 7 bits de un carácter '@').

Esta codificación de 7 bits permite el transporte de textos compuestos por caracteres imprimibles del latín básico (bloque Unicode) (con excepción del acento grave/comilla grave), así como algunos caracteres del juego de caracteres ISO Latin 1. También permite la codificación de textos escritos en escritura griega, pero sólo en mayúsculas; para tal uso en griego, las letras mayúsculas latinas que se parecen a las letras griegas se reutilizan con el mismo código, de modo que el conjunto de caracteres anterior está completo sólo para el griego monótono moderno restringido a letras mayúsculas. Un soporte completo para el alfabeto griego (incluidas las letras minúsculas) requiere una versión nacional de la tabla desplazada de 7 bits (utilizando el código ESC para cada carácter nacional codificado en esta tabla desplazada), o una codificación patentada de 8 bits no especificada, o la uso de la codificación UCS-2 (ver más abajo).

Tenga en cuenta que el código especial marcado SS2 en la tabla anterior también ha sido asignado (y codificado como 0x1B,0x1B) para permitir el uso de otra tabla de desplazamiento alternativa de 7 bits. Pero este mecanismo nunca se ha utilizado y se ha preferido la codificación UCS-2.

Tenga en cuenta que el carácter 0x09 ( Ç , C mayúscula con cedilla) debería reemplazarse por ç (c minúscula con cedilla) en la implementación moderna, como recomienda Unicode, [4] ya que la versión en mayúsculas es de poca utilidad.

Codificación de datos GSM de 8 bits

El modo de codificación de datos de 8 bits trata la información como datos sin procesar. Según el estándar, el alfabeto para esta codificación es específico del usuario.

Codificación UCS-2

Esta codificación permite el uso de una mayor variedad de caracteres e idiomas. UCS-2 puede representar los caracteres latinos y orientales más utilizados a costa de un mayor gasto de espacio. Estrictamente hablando, UCS-2 se limita a caracteres del Plano Multilingüe Básico . Sin embargo, dado que los entornos de programación modernos no proporcionan codificadores ni decodificadores para UCS-2, algunos teléfonos móviles (por ejemplo, iPhones ) utilizan UTF-16 en lugar de UCS-2. [5] Esto funciona porque para los caracteres en el plano multilingüe básico (incluidos los alfabetos completos de la mayoría de los idiomas humanos modernos) las codificaciones UCS-2 y UTF-16 son idénticas. Para codificar caracteres fuera del BMP (inalcanzables en UCS-2 simple), como Emoji , UTF-16 usa pares sustitutos , que cuando se decodifican con UCS-2 aparecerían como dos puntos de código válidos pero no asignados .

Un único mensaje SMS GSM que utilice esta codificación puede tener como máximo 70 caracteres (140 octetos).

Tenga en cuenta que en muchos teléfonos móviles GSM no existe una preselección específica de la codificación UCS-2. El valor predeterminado es utilizar la codificación de 7 bits descrita anteriormente, hasta que se ingresa un carácter que no está presente en la tabla GSM de 7 bits (por ejemplo, la 'a' minúscula con 'á' aguda). En ese caso, todo el mensaje se vuelve a codificar utilizando la codificación UCS-2 y la longitud máxima del mensaje enviado en un solo SMS se reduce inmediatamente a 70 caracteres, en lugar de 160. Otros varían según la elección y configuración de la aplicación de SMS. y la longitud del mensaje [ cita necesaria ] .

Para evitar costes inesperados para los remitentes que tienen una suscripción a un paquete limitado de SMS enviados, las aplicaciones deben [ ¿ según quién? ] muestra la cantidad de caracteres utilizados y la cantidad máxima de caracteres en el SMS compuesto. Cuando un mensaje excede este máximo, el mensaje [ se necesita aclaración ] se enviará como múltiples SMS sucesivos que contienen partes del mensaje (cada uno con un número de secuencia, que también utiliza algunos caracteres iniciales en cada parte); Estas piezas están destinadas a ser [ cita necesaria ] reensambladas más tarde por el destinatario.

Algunas aplicaciones alertan al usuario cuando es necesario dividir un mensaje, o incluso envían un mensaje más largo como mensaje multimedia (MMS).

Tablas de cambio de idiomas nacionales

Desde la versión 8 del estándar 3GPP 23.038 de marzo de 2008, se puede acceder a conjuntos de caracteres adicionales mediante el uso de tablas de cambio de idioma nacional.

Estas tablas permiten utilizar diferentes juegos de caracteres según el idioma en el que se vaya a escribir el texto. La elección de la tabla para un mensaje determinado se selecciona en la sección Encabezado de datos de usuario de un mensaje SMS y se puede especificar para todo el texto (una tabla de turnos de bloqueo que reemplaza la tabla alfabética predeterminada de 7 bits GSM estándar) o un solo carácter ( cambio único ). tabla que reemplaza la tabla de extensión alfabética predeterminada GSM de 7 bits). Es posible bloquear las tablas de turno único y bloquearlas juntas en el mismo mensaje, si se van a reemplazar tanto la tabla alfabética predeterminada estándar como la tabla de extensión alfabética predeterminada.

Usando una tabla de turnos, un mensaje aún puede usar codificación de 7 bits para los caracteres, pero se puede elegir un conjunto diferente para mostrar correctamente los caracteres acentuados y específicos del idioma. Esto permite hasta 155 caracteres, codificados en 136 octetos (140 octetos, menos los 4 octetos del encabezado de datos del usuario necesarios para indicar el uso de una tabla de turnos y el código de idioma). Con tablas de bloqueo y de turno único , se permiten hasta 152 caracteres, codificados en 133 octetos (140 octetos, menos el encabezado de datos de usuario de 7 octetos ).

Los caracteres de cualquier tabla de turnos con bloqueo ocupan un septeto, los caracteres de la tabla de turnos única (o tabla de extensión del juego de caracteres básicos) ocupan dos septetos.

Inicialmente, se especificaron tablas de turnos sólo para el turco; Se agregaron español y portugués en revisiones posteriores de la versión 8. La versión 9 introdujo 10 idiomas utilizados en la India escritos con escrituras brahmicas (bengalí, gujarati, hindi, kannada, malayalam, oriya, punjabi, tamil, telugu) y urdu .

Todavía no existe una tabla de cambio de idioma nacional definida para francés, griego, ruso, búlgaro, árabe, hebreo y la mayoría de los idiomas de Europa Central que necesitan una mejor cobertura que el juego de caracteres estándar predeterminado de 7 bits y su juego de caracteres de extensión predeterminado de 7 bits: Si alguna vez se compone algún carácter que no se puede representar en esos conjuntos GSM de 7 bits predeterminados, el mensaje se recodificará automáticamente usando UCS-2, con el efecto de dividir por más de dos la longitud máxima en caracteres de los mensajes que se pueden enviar. al precio de un solo SMS (cuando un mensaje se divide en varias partes, se necesitan algunos octetos más en el encabezado de datos del usuario para indicar el número de secuencia de cada parte).

Aunque una revisión de GSM 03.38 (ya en la versión 4.0.1 de septiembre de 1994) ha definido valores del esquema de codificación de datos para Cell Broadcast System (CBS) para alemán, inglés, italiano, francés, español, holandés, sueco, danés y finlandés. , noruego, griego y turco; Con el húngaro, polaco, checo, hebreo, árabe, ruso e islandés agregados en revisiones posteriores, no se definieron tablas de codificación para estos idiomas. El propósito de este campo era simplemente identificar el idioma del mensaje.

Tampoco hay una tabla de cambio de idioma para el japonés escrito en kanas básicos, o para el coreano escrito en Hangul jamos, o para el chino escrito en escritura Han. Esto no suele ser un problema en Japón, porque utiliza otros estándares además de GSM y WAP para la mensajería. Los otros dos idiomas también tienen demasiados caracteres distintos para caber en una tabla de desplazamiento de 7 bits.

Idioma español (escritura latina)

No existe un conjunto de caracteres de cambio de bloqueo específico para el idioma español. Utiliza el juego de caracteres básico predeterminado.

Idioma portugués (escritura latina)

Idioma turco (escritura latina)

Idioma urdu (escritura árabe y latina básica)

También se puede utilizar para el idioma sindhi, también escrito en escritura árabe.

A veces también se puede usar para el idioma árabe , pero los dígitos orientales (codificados aquí en su variante persa-hindú) no se usarán en ese caso porque el árabe estándar prefiere sus dígitos árabes orientales tradicionales y con frecuencia será reemplazado por occidental. Dígitos árabes (codificados en el conjunto de caracteres de cambio de bloqueo en la columna 0x30) que ahora también se usan con frecuencia en urdu. Sin embargo, en la India, los teléfonos que reconocen la indicación del idioma árabe pueden sustituir las variantes persa-hindú de los dígitos del árabe oriental por los dígitos del árabe oriental tradicional.

Idioma hindi (devanagari y escritura latina básica)

Idiomas bengalí y asamés (escritura bengalí y latina básica)

Idioma punjabi (Gurmukhī y escritura latina básica)

Idioma gujarati (gujarati y escritura latina básica)

Idioma oriya (oriya y escritura latina básica)

Idioma tamil (escritura tamil y latina básica)

Idioma telugu (telugu y escritura latina básica)

Idioma kannada (kannada y escritura latina básica)

Idioma malayalam (malayalam y escritura latina básica)

Ver también

Referencias

  1. ^ 3GPP TS 23.038, Alfabetos e información específica del idioma.
  2. ^ abcdefghijklmnopqrstu vwxyz aa ab Alfabetos e información específica del idioma (3G TS 23.038 versión 12.0.0) (archivo .doc comprimido), ETSI, septiembre de 2014.
  3. ^ "Los mensajes de texto [...] contienen hasta 140 octetos". en 3GPP TS 23.040 Realización técnica del Servicio de Mensajes Cortos (SMS)
  4. ^ GSM 03.38 a Unicode GSM 03.38 a Unicode
  5. ^ Chad Selph (8 de noviembre de 2012). "Aventuras en Unicode SMS". Twilio. Archivado desde el original el 8 de septiembre de 2015 . Consultado el 28 de agosto de 2015 .

Enlaces externos