Espacios de nombres
Variantes
Acciones

Juegos de caracteres y codificaciones

De cppreference.com
< cpp‎ | language

Contenido

[editar] Juegos de caracteres actuales (desde C++23)

[editar] Juego de caracteres de traducción

El juego de caracteres de traducción consiste en los siguientes elementos:

  • cada carácter denominado por ISO/IEC 10646, como se identifica por su valor escalar en el Juego de Caracteres Universal (UCS) y
  • un carácter distinto para cada valor escalar del UCS donde no se asigna un carácter denominado.

[editar] Juego de caracteres básico

El juego de caracteres básico es un subconjunto del juego de caracteres de traducción, que consiste en los siguientes 96 caracteres:

Unidad de código Carácter Glifo
U+0009 Tabulación horizontal
U+000B Tabulación vertical
U+000C Nueva página, salto de página (FF)
U+0020 Espacio en blanco
U+000A Nueva línea, salto de línea (LF) nueva línea
U+0021 Cierra signo de admiración !
U+0022 Comillas dobles, comillas altas o inglesas "
U+0023 Signo numeral o almohadilla #
U+0025 Signo de porcentaje %
U+0026 Ampersand, Y, et latina &
U+0027 Apóstrofo '
U+0028 Abre paréntesis (
U+0029 Cierra paréntesis )
U+002A Asterisco *
U+002B Signo más, suma, positivo +
U+002C Coma ,
U+002D Signo menos, resta, negativo, guion medio -
U+002E Punto .
U+002F Barra inclinada, división, operador cociente /
U+0030 .. U+0039 Dígitos del cero al nueve 0 1 2 3 4 5 6 7 8 9
U+003A Dos puntos :
U+003B Punto y coma ;
U+003C Signo menor que <
U+003D Signo igual =
U+003E Signo mayor que >
U+003F Cierra signo de interrogación ?
U+0041 .. U+005A Letra latina mayúscula A .. Z A B C D E F G H I J K L M

N O P Q R S T U V W X Y Z

U+005B Abre corchetes [
U+005C Barra invertida, contrabarra, barra inversa \
U+005D Cierra corchetes ]
U+005E Intercalación, acento circunflejo ^
U+005F Guion bajo, subrayado, subguion _
U+0061 .. U+007A Letra latina minúscula a .. z a b c d e f g h i j k l m

n o p q r s t u v w x y z

U+007B Abre llave {
U+007C Barra vertical, pleca , linea vertical |
U+007D Cierra llave }
U+007E Tilde ~

[editar] Juego de caracteres de literal básico

El juego de caracteres de literal básico consiste en todos los caracteres del juego de caracteres básico, más los siguientes caracteres de control:

Unidad de código Carácter
U+0000 Nulo
U+0007 Alerta o Timbre
U+0008 Retroceso
U+000D Retorno de carro (CR)

[editar] Juego de caracteres de ejecución

El juego de caracteres de ejecución y el juego de caracteres anchos de ejecución son superconjuntos del juego de caracteres de literal básico. Las codificaciones de los juegos de caracteres de ejecución y los juegos de elementos adicionales (si los hay) son específicos de la configuración regional.

[editar] Unidad de código y codificación de literales

Una unidad de código es un valor entero de tipo carácter. Los caracteres en un literal de carácter que no sean un literal de carácter de varios caracteres o no codificable o en un literal de cadena se codifican como una secuencia de una o más unidades de código, según lo determinado por el prefijo de codificación; esto se denomina la codificación de literales.

Una codificación de literales o una codificación local específica de uno de los juegos de caracteres de ejecución codifica cada elemento del juego de caracteres de literal básico como una sola unidad de código con valor no negativo, distinta de la unidad de código para cualquier otro elemento. Un carácter que no esté en el juego de caracteres de literal básico puede codificarse con más de una unidad de código; el valor de dicha unidad de código puede ser el mismo que el de una unidad de código para un elemento del juego de caracteres de literal básico. Las codificaciones de los juegos de caracteres de ejecución pueden no estar relacionadas con ninguna codificación de literales.

La codificación de literales ordinaria es la codificación aplicada a un carácter ordinario o literal de cadena. La codificación de literales ancha es la codificación aplicada a un carácter ancho o literal de cadena.

El carácter U+0000 NULL se codifica como el valor 0. Ningún otro elemento del juego de caracteres de traducción se codifica con una unidad de código de valor 0. El valor de la unidad de código de cada carácter de dígito decimal después del dígito 0 (U+0030) será uno mayor que el valor del anterior. Las codificaciones de literales ordinarias y anchas están definidas por la implementación.

Para un literal UTF-8, UTF-16, o UTF-32, el valor escalar UCS que corresponde a cada carácter del juego de caracteres de traducción se codifica como se especifica en ISO/IEC 10646 para la forma de codificación UCS respectiva.

[editar] Juegos de caracteres anteriores a C++23 (hasta C++23)

[editar] Juego de caracteres fuente básico

El juego de caracteres fuente básico consiste en 96 caracteres:

  • el carácter de espacio,
  • los caracteres de control representando
    • tabulador horizontal,
    • tabulador vertical,
    • alimentación de forma,
    • y nueva línea,
  • más los siguientes 91 caracteres gráficos:
a b c d e f g h i j k l m n o p q r s t u v w x y z
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
0 1 2 3 4 5 6 7 8 9
_ { } [ ] # ( ) < > % : ; . ? * + - / ^ & | ~ ! = , \ "

Los glifos para los miembros del juego de caracteres fuente básico están destinados a identificar caracteres del subconjunto de ISO/IEC 10646 que corresponde al juego de caracteres ASCII. Sin embargo, debido a que el mapeo de los caracteres del archivo fuente al juego de caracteres fuente (descrito en la fase de traducción 1) se especifica como definido por la implementación, se requiere una implementación para documentar cómo los caracteres fuente básicos están representados en archivos fuente.

[editar] Juego de caracteres de ejecución básico

El juego de caracteres de ejecución básico y el juego de caracteres anchos de ejecución básico contendrá cada uno de los miembros del juego de caracteres fuente básico, más los caracteres de control que representan la alerta o timbre, el retroceso y el retorno de carro, más un carácter nulo (respectivamente, carácter ancho nulo), cuyo valor es 0.

Para cada juego de caracteres de ejecución básico, los valores de los miembros serán no negativos y distintos entre sí. Tanto en la fuente como en la ejecución del juego de caracteres básicos, el valor de cada carácter después de 0 en la lista anterior de dígitos decimales será uno mayor que el valor del anterior.

[editar] Juego de caracteres de ejecución (la antigua definición)

El juego de caracteres de ejecución y el juego de caracteres anchos de ejecución son superconjuntos definidos por la implementación del juego de caracteres de ejecución básico y del juego de caracteres anchos de ejecución básico, respectivamente. Los valores de los miembros de los juegos de caracteres de ejecución y los juegos de miembros adicionales son específicos de la configuración regional.

[editar] Véase también

Juego de caracteres ASCII