[Kde-devel-es] QString::latin1()

Antonio Larrosa Jiménez larrosa at kde.org
Mon Apr 5 20:37:37 CEST 2004


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

El Lunes 05 Abril 2004 12:11, José Miguel escribió:
> Hola otra vez, compañeros.
>

Hola,

> 	La verdad es que no entiendo muy bien el tema de la representación de
> caracteres, así que por eso estoy un poco despistado. Estoy llamando a
> funciones de una biblioteca en C desde una interfaz en C++ y estoy
> teniendo problemas en una serie de funciones que aceptan char *. Convierto
> las QString de la interfaz con latin1(), pero tengo problemas en los
> nombres de algunos ficheros; parece que dan problemas los que tienen el
> guión bajo '_'. ¿Puede ser esto así? Ya digo que no tengo mucha idea de
> este tema (ni de muchos otros ;)

latin1 es una conjunto de caracteres propio de europa occidental y 
norteamérica, pero no es el único conjunto que hay, con lo que tu programa 
fallará en el caso en que el sistema de archivos use otro sistema (por 
ejemplo, en rusia o china, donde los nombres de ficheros pueden tener 
caracteres que no se pueden representar en latin1).
Para convertir una cadena unicode (QString) en una cadena en la codificación 
del sistema de ficheros, usa QFile::encodeName. No te austes porque devuelva 
un QCString, ya que QCString es basicamente un "char *" (y de hecho, lo 
puedes usar allí donde puedas usar un char * ya que tiene un operador de 
conversión definido).

Por otra parte, no sé qué funciones de C vas a utilizar para manejar esos 
ficheros, pero siempre que puedas, te recomiendo que uses las clases de Qt 
que hacen lo mismo (o mejor incluso, de KIO, pero las de Qt se asemejan más 
a las de C).

Por ejemplo, en vez de unlink, usa QFile::remove; en vez de stat, usa 
QFile::exists; en vez de fopen y leer un fichero de texto, usa QTextStream 
pasándole un objeto QFile al constructor, etc.

Saludos,

- --
Antonio Larrosa Jimenez
KDE developer - larrosa at kde.org
http://developer.kde.org/~larrosa/
Better read something in another language than a riddle in your own.
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.2 (GNU/Linux)

iD8DBQFAcad/3mWkZZAItZARAi0AAKChsp7Em6uBAIFT5u+B8DfY0YxD7ACeKk8H
1sFLJgrTuwVLzA9tQ9dpF6E=
=fB4Z
-----END PGP SIGNATURE-----


More information about the Kde-devel-es mailing list