Juegos de caracteres y codificaciones
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
|
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
|
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 |