[C con Clase] Codificación de caracteres

David . di.romero en hotmail.es
Vie Dic 11 19:15:14 CET 2009


Si, conozco esa estupenda web.

Pero eso no es lo que quiero. El conjunto de caracteres (la codificación) no es si los números se interpretan/escriben en base 10, 8 ó 2, sino la correspondencia entre el código numérico de un caracter (1 Byte, por ejemplo) y el caracter que representa (la 'a', por ejemplo).

Lo que quiero es poder elegir el charset (el conjunto de caracteres).

En Java, por ejemplo, se puede hacer muy fácilmente. Cuando usas los flujos de Java, puedes usar el charset por defecto (que creo que es UTF-16) ó puedes establecer el que tú quieras. Me pregunto si en C++ es eso posible. En toda la documentación que he leído en Internet (incluida la web cplusplus y la de cconclase) he visto mucha funcionalidad en los flujos estándar de C++, con los manipuladores por ejemplo, pero no he visto nada de elegir el charset...

Saludos.

Date: Fri, 11 Dec 2009 11:51:19 +0100
From: josmaca en gmail.com
To: cconclase en listas.conclase.net
Subject: Re: [C con Clase] Codificación de caracteres

¿Que codificación te gustaria ponerle?, con los flags puedes ponerlo en binario, hexadecimal, decimal, etc.. mirate esta pagina a ver si encuentras lo que buscas http://www.cplusplus.com/reference/iostream/ifstream/

en concreto el operador >> y sus opciones.

El 11 de diciembre de 2009 00:39, DavidIRE <di.romero en hotmail.es> escribió:

Si, si eso lo sé.



Pero me gustaría saber si hay alguna forma de decirle a la biblioteca estándar de C++ (en concreto, a los flujos) que use un determinado charset (conjunto de caracteres, es decir, codificación de los mismos).



Obviamente, estos flujos estándar usan un charset por defecto (tienen que usar alguno).



Lo que yo quiero es poder cambiar ese charset por defecto.



Saludos.



El pasado 2009-12-10 08:23:53, josmeagol escribió:



j> No se si te refieres a esto pero creo que la codificación es la ASCII sin

j> extender de 8bit caracter http://es.wikipedia.org/wiki/Ascii, de todas

j> formas puedes hacer que te muestre el cauce en binario, y con unos pocos

j> caracteres, comprobar que es esta la codificación.

j> ofstream SalidaBinaria;

j> SalidaBinaria.open ("ejemplo.bin", ios::out | ios::app | ios::binary);

j> El 10 de diciembre de 2009 03:28, DavidIRE <di.romero en hotmail.es> escribió:

j> > Pongo un ejemplo:

j> >

j> > Leo de un fichero de texto, "file.txt", que contiene texto sin formato

j> > codificado con el conjunto de caracteres UCS-2.

j> >

j> > Para ello, utilizo un flujo de entrada de fichero (un objeto de la clase

j> > ifstream de la biblioteca estándar de C++).

j> >

j> > Con dicho flujo, leo caracteres.

j> >

j> > Cada caracter es un Byte.

j> >

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

j> >

j> > Pero, dependiendo del conjunto de caracteres usado (es decir, de la

j> > codificación del fichero "file.txt"), un Byte puede representar un caracter

j> > u otro.

j> >

j> > Mi pregunta es, ¿qué conjunto de caracteres utiliza la clase ofstream (es

j> > decir, cómo interpreta los Bytes en caracteres)?

j> >

j> > Saludos.

j> >

j> >

j> > El pasado 2009-12-09 16:33:03, Programante escribió:

j> >

j> > P> David . escribió:

j> > P> > Hola,

j> > P> >

j> > P> > Tengo una duda, ¿qué codificación de caracteres utiliza C++?

j> > P> >

j> > P> > Al manipular streams con la biblioteca estándar de C++ (por ejemplo,

j> > P> > al leer ficheros de texto con la clase ifstream), ¿qué codificación de

j> > P> > caracteres se utiliza para decodificar los bytes del fichero de texto?

j> > P> > ¿se puede cambiar dicha codificación?

j> > P> >

j> > P> > Muchas gracias.

j> > P> >

j> > P> No se utiliza ninguna codificación. Lees y escribes bytes.

j> > P> Pueden ser caracteres en windows-1252, utf-8, ucs-16 o datos binarios de

j> > P> una imagen.

j> > P> Eso al ordenador le da igual, del mismo modo que no comprueba que el

j> > P> fichero de texto esté en español.*

j> > P> Lo que ya es harina de otro costal es cómo va a interpretarlos el

j> > P> programa con el que lo abras o la pantalla donde lo imprimas.

j> > P> Por ejemplo, es común que en Windows trabajes con ficheros en

j> > P> windows-1252 pero a la hora de imprimir datos por pantalla te los

j> > P> imprima como si fueran CP850 :(

j> > P> *Con la salvedad de que en Windows existe un modo de archivos 'binario',

j> > P> fuera del cual la librería te realiza traducciones de saltos de línea y

j> > P> fin de fichero. Con lo cual te

j> > P> podría corromper los datos si tienen ciertos caracteres especiales.

j> > P> _______________________________________________

j> > P> Lista de correo Cconclase Cconclase en listas.conclase.net

j> > P>

j> > http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net

j> > P> Bajas: http://listas.conclase.net/index.php?gid=2&mnu=FAQ

j> > _______________________________________________

j> > Lista de correo Cconclase Cconclase en listas.conclase.net

j> > http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net

j> > Bajas: http://listas.conclase.net/index.php?gid=2&mnu=FAQ

j> >

j> _______________________________________________

j> Lista de correo Cconclase Cconclase en listas.conclase.net

j> http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net

j> Bajas: http://listas.conclase.net/index.php?gid=2&mnu=FAQ

_______________________________________________

Lista de correo Cconclase Cconclase en listas.conclase.net

http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net

Bajas: http://listas.conclase.net/index.php?gid=2&mnu=FAQ


 		 	   		  
_________________________________________________________________
Date una vuelta por Sietes y conoce el pueblo de los expertos en Windows 7
http://www.sietesunpueblodeexpertos.com/
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.conclase.net/pipermail/cconclase_listas.conclase.net/attachments/20091211/33821dac/attachment.html>


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