https://foro.gambas-es.org/viewtopic.php?f=1&t=1279
-----------------------------------
jsbsan
Miercoles, 05 Enero 2011, 00:08

Convertir Juego De Caracteres UTF-8 A Juego De Caracteres Compatible Con Windows...
-----------------------------------
Hola a todos, tengo el siguiente problema:

Uso la orden Conv para convertir los caracteres de un archivo hecho en el sistema operativo windows a linux...

[code linenumbers=false syntax=gambas]  var.concepto_codigo[a - 1] = Conv(arr_cadenas_linea[1], "ISO-8859-1", ""UTF-8) 'convierte los caracteres de windowsa a linux...[/code]


Pero cuando guardo los datos quiero hacer lo inverso, del juego de caracteres de linux a windows (para que los usuarios de windows los puedan usar) ¿como se hace?


Saludos
Nota.
He intentado
[code linenumbers=false syntax=gambas]  var.concepto_codigo[a - 1] = Conv(arr_cadenas_linea[1],  "UTF-8,"ISO-8859-1") .[/code]
pero me da error...


-----------------------------------
jsbsan
Miercoles, 05 Enero 2011, 01:09

Re: Convertir Juego De Caracteres UTF-8 A Juego De Caracteres Compatible Con Windows...
-----------------------------------
He intentado con este comando de la terminar:

[code linenumbers=false syntax=gambas]comando = "iconv " & RUTA & " -f UTF-8 -t iso-8859-1"
SHELL comando WAIT
[/code]

Pero no funciona....


-----------------------------------
codificador
Miercoles, 05 Enero 2011, 01:47

Re: Convertir Juego De Caracteres UTF-8 A Juego De Caracteres Compatible Con Windows...
-----------------------------------
hay un programa que se llama recode que sirve para eso


-----------------------------------
jsbsan
Miercoles, 05 Enero 2011, 02:44

Re: Convertir Juego De Caracteres UTF-8 A Juego De Caracteres Compatible Con Windows...
-----------------------------------
Vale ya lo he instalado, quedando la instruccion asi:
[code linenumbers=false syntax=gambas]comando = "recode utf8..iso-8859-1 " & ruta 
SHELL comando WAIT[/code]

Pero parece que este no es el juego iso-8859-1 que usa wine... para el programa que tengo de windows:
 [img]http://foro.gambas-es.org/files/images/6/pantallazo_1294191801_618128.png[/img]

Por ejemplo, la "Í" la sustituye un "-"
la "Ó" por "Ë".....

¿cual puede ser el juego de caracteres correcto???

Saludos


-----------------------------------
soplo
Miercoles, 05 Enero 2011, 04:26

Re: Convertir Juego De Caracteres UTF-8 A Juego De Caracteres Compatible Con Windows...
-----------------------------------
[url=http://gambasdoc.org/help/lang/conv?v3]Conv

[url=http://gambasdoc.org/help/lang/dconv]dconv 

[url=http://gambasdoc.org/help/lang/sconv?v3]Sconv

Windows usa iso-8859-1 pero que yo recuerde (y no lo digo con seguridad) wine usa el desktop que normalmente será utf-8

Un saludo


-----------------------------------
jsbsan
Miercoles, 05 Enero 2011, 18:43

Re: Convertir Juego De Caracteres UTF-8 A Juego De Caracteres Compatible Con Windows...
-----------------------------------
Soplo:

Ademas de wine,, necesito que el usuario pueda usarlo en un windows "normal", como convierto el archivo de texto de UTF-8 para que lo pueda leer  windows??? :?:  :?: 

Saludos...


-----------------------------------
codificador
Miercoles, 05 Enero 2011, 23:20

Re: Convertir Juego De Caracteres UTF-8 A Juego De Caracteres Compatible Con Windows...
-----------------------------------
por ejemplo este txt echo en windows

[quote="comando file"] [b]file [/b]archivo.txt
archivo.txt: ISO-8859 text, with CRLF line terminators
[/quote]


-----------------------------------
jsbsan
Jueves, 06 Enero 2011, 02:41

Re: Convertir Juego De Caracteres UTF-8 A Juego De Caracteres Compatible Con Windows...
-----------------------------------
Codificador:
No entiendo lo que has puesto, ¿puedes explicarmelo?


-----------------------------------
codificador
Jueves, 06 Enero 2011, 03:03

Re: Convertir Juego De Caracteres UTF-8 A Juego De Caracteres Compatible Con Windows...
-----------------------------------
[quote user="jsbsan" post="7318"]
¿cual puede ser el juego de caracteres correcto???

Saludos[/quote]
el comando
[b]file[/b]
permite saber el juego de caracteres 

por ejemplo
file windows.txt
archivo.txt: ISO-8859 text, with CRLF line terminators 

file wine.txt
??????


file mi.txt 
?????


-----------------------------------
soplo
Jueves, 06 Enero 2011, 03:07

Re: Convertir Juego De Caracteres UTF-8 A Juego De Caracteres Compatible Con Windows...
-----------------------------------
conv$ convierte un string en un charset a otro charset.

Lo tienes explicado aqui
[url=http://gambasdoc.org/help/lang/conv?v3]conv

Y tienes que tener presente que en windows las líneas acaban en CRLF y en linux en LF así que la conversión de un archivo de uno a otro requiere añadir o quitar CR al final de cada línea.


-----------------------------------
jsbsan
Viernes, 07 Enero 2011, 00:04

Re: Convertir Juego De Caracteres UTF-8 A Juego De Caracteres Compatible Con Windows...
-----------------------------------
Soplo:

He usado conv, de la siguiente manera:
[quote]
texto=Conv(var.concepto_unidad[a], "UTF-8", "ISO-8859")[/quote]

Tambien lo intente con "ISO-8859-1" y "ISO-8859-15", y mismo error.

Pero me sigue saliendo mal la conversion la "Í" la pone como "-" y la "Ó" lo pone como un  "Ë"  :cry:  :cry: 

Sin embargo para la conversion de windows a linux, no da ningun problema
[code linenumbers=false syntax=gambas]  var.concepto_unidad[a - 1] = Conv(arr_cadenas_linea[2], "ISO-8859-1", "UTF-8")[/code]

¿alquien puede decirme otra forma...? Es importante para mi aplicacion Xlincegambas, ya que tengo que hacer "compatibles archivos generados por de linux para que se puedan usar en windows...


Nota:
[quote]Y tienes que tener presente que en windows las líneas acaban en CRLF y en linux en LF así que la conversión de un archivo de uno a otro requiere añadir o quitar CR al final de cada línea.[/quote]
Ok, eso si lo tengo "contralado"

codificador:
[quote]el comando
[b]file[/b]
permite saber el juego de caracteres [/quote]
No conocia este comando... gracias..


-----------------------------------
codificador
Viernes, 07 Enero 2011, 02:45

Re: Convertir Juego De Caracteres UTF-8 A Juego De Caracteres Compatible Con Windows...
-----------------------------------
[quote]ro me sigue saliendo mal la conversion la "Í" la pone como "-" y la "Ó" lo pone como un "Ë"

[/quote]


pero cambia las "-" por  "Í"
en vb6 existe la funcion [b]Replace[/b] que precisamente  hace eso


-----------------------------------
soplo
Viernes, 07 Enero 2011, 03:26

Re: Convertir Juego De Caracteres UTF-8 A Juego De Caracteres Compatible Con Windows...
-----------------------------------
Estoy seguro que no estas poniendo bien los charset. Posiblemente no sea "iso-8859" lo que tienes que poner. Posiblemente sea un tipo específico "iso-8859-1", "iso-8859-15", ... También te puede pasar lo mismo con el utf-8. Quizá es utf-es o utf-8@euro o algo así.

Para no equivocarse lo mejor es usar desktop.charset que te devuelve el charset que utiliza tu escritorio. Será un utf-8 pero quizá se un -es o un euro o algo. Y para el de destino tendrás que averiguar cual usa windows exactamente. Me parece recordar que el de windows es iso-8859-1 que es el que corresponde a latin 1 pero no estoy seguro porque ese es antiguo (el de toda la vida) y probablemente eso cambió con el euro. Muy posiblemente algún service pack o algo pondría otro o quizá el latin 1 se modificara para agregar el euro no lo se. También hay otros que se llaman WINDOWS-numero y que no se cuando o como se usan. 

Debería ser uno de estos
[quote]iconv -l | grep ISO_8859[/quote]
la lista completa naturalmente es
[quote]iconv -l[/quote]

Y ten cuidado con las mayúsculas que no se yo si esto será o no sensitivo.


-----------------------------------
jsbsan
Viernes, 07 Enero 2011, 13:31

Re: Convertir Juego De Caracteres UTF-8 A Juego De Caracteres Compatible Con Windows...
-----------------------------------
codificador:

Lo que dices no lo puedo hacer... es un problema del juego de caracteres.

Nota:
En gambas tambien existe el replace...


Soplo:
Lo probare, lo que me dices, a ver si doy con la "tecla...."


-----------------------------------
jsbsan
Lunes, 10 Enero 2011, 16:45

Re: Convertir Juego De Caracteres UTF-8 A Juego De Caracteres Compatible Con Windows...
-----------------------------------
Pues nada... después de mucho intentarlo, no hay manera....  :sad: 

Al final he cogido una solución drástica, quitar los acentos... y hacer la conversión.... 

[code linenumbers=false syntax=gambas] Conv(imprimir.quitaacento(var.medi_comentario[a]), Desktop.Charset, sistemaswindows)[/code]

Siendo sistemaswindows="ISO-8859-15" ...
La función imprimir.quitaacento() cambia las letras acentuadas por otras que no lo están. (á por a, por ejemplo.)

Por lo menos se ve menos mal ;-) ... pero sigue sin quedar bien.... :cry:  :cry: 

Saludos


-----------------------------------
soplo
Lunes, 10 Enero 2011, 19:21

Re: Convertir Juego De Caracteres UTF-8 A Juego De Caracteres Compatible Con Windows...
-----------------------------------
Algo ahí no casa. Debiera funcionarte bien. Igual es que hay acentos pero no están en Iso8859-15.

Escribe un texto de prueba en windows con acentos, ñ y eso. Te lo llevas a ubuntu y allí haces esa prueba con él a ver si te la convierte como es debido. Da la impresión de que Iso-8859-15 no sea el charset adecuado.


