Buenas!.
Un grupo de nombres de los archivo que aparecían en un ebook que tengo por aquí mostraba caracteres raros.
Las tildes. Decidí convertir el nombre a otros códigos de página, pero no parece un nombre de archivo con sentido al convertir el código de página.
Adjunto el código del programa y el ejemplo para poder intentar solucionar el problema.
Utilizo para ello distintas codificaciones de página que me genera el comando iconv.
Código:
Private cuentafilas As Integer
Public Sub Form_Open()
With grdTabla
.Header = GridView.Both
.Columns.Count = 3
.Rows.Count = 0
.Columns[0].Title = "Texto original"
.Columns[0].W = 350
.Columns[1].Title = "Codificación"
.Columns[1].w = 150
.Columns[1].Alignment = Align.Center
.Columns[2].Title = "Texto convertido a UTF-8"
.Columns[2].W = 350
.Columns[2].Alignment = Align.Center
End With
End
Public Sub rellenarGridView(nombrefichero As String, datos As String[])
Dim jc As String
Dim conversion As String
For Each jc In datos
grdTabla.Rows.Count = cuentafilas + 1
grdTabla[cuentafilas, 0].Alignment = Align.Left
grdTabla[cuentafilas, 0].Text = nombrefichero
grdTabla[cuentafilas, 1].Alignment = Align.Center
grdTabla[cuentafilas, 1].Text = jc
grdTabla[cuentafilas, 2].Alignment = Align.Center
Try conversion = Conv(nombrefichero, jc, "UTF-8")
If Not IsNull(conversion) Then grdTabla[cuentafilas, 2].Text = conversion
If Error Then
'No cuentes fila
Continue
Else
cuentafilas += 1
Endif
Next
Label1.Text = "Total de conversiones: " & Str(cuentafilas + 1)
End
Public Sub Button1_Click()
Dim archivo As String
Dim juegodec As New String[]
Dim tiposdecodificacion As String
'conv de gambas es un intermediario del comando iconv del sistema
'pasamos todos los códigos de página que existe a la variable
Try Exec ["iconv", "--list"] To tiposdecodificacion
'Copiado y pegado directamente el nombre del archivo en el editor de Gambas
'No puedo pasar el archivo, ya que no tengo seguridad si es libre
archivo = "Benito Prerz Gald¢s - Los Ayacuchos.epub"
juegodec = Split(tiposdecodificacion, "\n", "//", True)
rellenarGridView(archivo, juegodec)
'Esto salta siempre al final. No sé si es un error que viene del relleno del gridview
'He tenido que anular su ejecución
'If Error Then Message.Warning("No tienes instalado iconv en tu sistema!")
End
Si, la lista es larga. A ver si podéis ayudar con la manipulación de errores.
Saludos