[C con Clase] Codificación de caracteres

DavidIRE di.romero en hotmail.es
Jue Dic 10 03:28:20 CET 2009


Pongo un ejemplo:

Leo de un fichero de texto, "file.txt", que contiene texto sin formato codificado con el conjunto de caracteres UCS-2.

Para ello, utilizo un flujo de entrada de fichero (un objeto de la clase ifstream de la biblioteca estándar de C++).

Con dicho flujo, leo caracteres.

Cada caracter es un Byte.

En el fichero "file.txt" cada caracter es un Byte también.

Pero, dependiendo del conjunto de caracteres usado (es decir, de la codificación del fichero "file.txt"), un Byte puede representar un caracter u otro.

Mi pregunta es, ¿qué conjunto de caracteres utiliza la clase ofstream (es decir, cómo interpreta los Bytes en caracteres)?

Saludos.


El pasado 2009-12-09 16:33:03, Programante escribió:
 
P> David . escribió:
P> > Hola,
P> >
P> > Tengo una duda, ¿qué codificación de caracteres utiliza C++?
P> >
P> > Al manipular streams con la biblioteca estándar de C++ (por ejemplo,
P> > al leer ficheros de texto con la clase ifstream), ¿qué codificación de
P> > caracteres se utiliza para decodificar los bytes del fichero de texto?
P> > ¿se puede cambiar dicha codificación?
P> >
P> > Muchas gracias.
P> >
P> No se utiliza ninguna codificación. Lees y escribes bytes.
P> Pueden ser caracteres en windows-1252, utf-8, ucs-16 o datos binarios de
P> una imagen.
P> Eso al ordenador le da igual, del mismo modo que no comprueba que el
P> fichero de texto esté en español.*
P> Lo que ya es harina de otro costal es cómo va a interpretarlos el
P> programa con el que lo abras o la pantalla donde lo imprimas.
P> Por ejemplo, es común que en Windows trabajes con ficheros en
P> windows-1252 pero a la hora de imprimir datos por pantalla te los
P> imprima como si fueran CP850 :(
P> *Con la salvedad de que en Windows existe un modo de archivos 'binario',
P> fuera del cual la librería te realiza traducciones de saltos de línea y
P> fin de fichero. Con lo cual te
P> podría corromper los datos si tienen ciertos caracteres especiales.
P> _______________________________________________
P> Lista de correo Cconclase Cconclase en listas.conclase.net
P> http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net
P> Bajas: http://listas.conclase.net/index.php?gid=2&mnu=FAQ


Más información sobre la lista de distribución Cconclase