[C con Clase] Codificación de caracteres

Programante programante en gmail.com
Sab Dic 12 18:00:26 CET 2009


David . escribió:
> 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.
No. C++ no tiene ningún charset.
Lo que lees son bytes. En el ejemplo donde lees de un fichero en UCS-2
esos bytes que lees, cada uno de ellos es "media letra".

Si quieres pasar de uno a otro, puedes hacerte una función para eso o
usar una librería que lo haga (iconv por ejemplo).

La codificación de caracteres más usada en C++ es la ANSI y UTF-8.
Aunque en Windows también se usa bastante UCS-2/UTF-16 debido a que es
lo que soportan las versiones extendidas de las funciones de Windows.
También están los wchar_t y TCHAR, UCHAR... pero tal vez sea desviarnos
mucho del tema.





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