Convertir un archivo de codificación mediante R? (ANSI a UTF-8)

Quiero convertir un archivo HTML codificado en ANSI a UTF-8, mediante R.

Hay una herramienta, o una combinación de herramientas, que puede hacer este trabajo?

Gracias.

Editar: o.k, he reducido mi problema a otro. Es re-publicado aquí: El uso de «gato» para escribir caracteres no ingleses en una .archivo html (en R)

InformationsquelleAutor Tal Galili | 2011-09-20

2 Kommentare

  1. 22

    puede utilizar iconv:

    writeLines(iconv(readLines("tmp.html"), from = "ANSI_X3.4-1986", to = "UTF8"), "tmp2.html")

    tmp2.html debe ser utf-8.


    Edición por Henrik en junio de 2015:

    Una solución de trabajo de Windows destilado a partir de los comentarios es el siguiente:

    writeLines(iconv(readLines("tmp.html"), from = "ANSI_X3.4-1986", to = "UTF8"), 
               file("tmp2.html", encoding="UTF-8"))
    • Pero lo que con cabeceras html? No debe ser cambiado?
    • Gracias Kohske, pero esto no funciona para mí. Se puede convertir el texto en el archivo, pero de alguna extraña forma, no el archivo en sí. Cuando he usado el notepad++ para mirar a la codificación, es todavía ANSI, y sólo a través de bloc de notas++ puedo cambiar a UTF8 (su código no hacerlo). Alguna sugerencia? 🙂
    • ¿Sobre el cambio de from = "CP1252" ?
    • Kohske – esta es la correcta codificación a utilizar. Pero cuando leí el archivo en R, interpreta el texto correctamente. Voy a tratar de actualizar mi pregunta para explicar mejor…
    • Es necesario definir file conexión con la codificación correcta (ver ?file). Algo así como f<-file("tmp2.html", encoding="UTF-8") y, a continuación,writeLines(....., f).
    • Gracias Marek. Esto parece estar en la dirección correcta, pero sin éxito todavía. Por favor, continuar con esta en el nuevo hilo que empecé (que tiene una versión actualizada de la pregunta): stackoverflow.com/questions/7483742/…
    • ¿Qué hace su prueba de archivo html contiene? De ?Encoding: «cadenas de caracteres ASCII nunca será marcado con una declaración de codificación, ya que su representación es la misma en todas las ediciones de codificaciones.» También trate de useBytes = TRUE en la llamada a writeLines.

  2. 0

    He tenido algunos problemas con las soluciones propuestas anteriormente, especialmente con el carácter de TABULACIÓN. Esta alternativa nunca me ha decepcionado. Lamentablemente sólo funciona en sistemas tipo UNIX.

    system('iconv -f CP1252 -t UTF-8 < tmp.html > tmp2.html')

Kommentieren Sie den Artikel

Bitte geben Sie Ihren Kommentar ein!
Bitte geben Sie hier Ihren Namen ein

Pruebas en línea