Vertik escribiste:Sí, pero si estoy leyendo un texto de algún web, éste puede tener diferentes codificaciones...
Las páginas web indican en qué codificación están, bien a través de un marca <meta> con atributo
charset:
<META http-equiv="Content-Type" content="text/html; charset=iso-8859-15">
O a través de las cabeceras HTTP que devuelve el servidor web:
Content-Type: text/html; charset=EUC-JP
Vertik escribiste: entonces, ¿cómo se hace para un texto con múltiple encondings? Porque el file solo devuelve un solo tipo, ¿no?
Si un texto, sin indicaciones o marcas que lo indiquen, tiene una o más codificaciones distintas, puede ser
muy difícil averiguar a qué codificación corresponde. Para los ordenadores, todos los archivos son una ristra de bytes. Pero sí hay pistas para distinguir algunas codificaciones. Pero no todas.
La función guess_encoding() es del módulo
Encode::Guess. Mira el primer punto de la sección
caveats de la página del manual. Dice que las codificaciones de un simple byte (como la nuestra, la iso-8859-15), son muy difíciles de adivinar porque cubren todo el rango de bytes posibles (del 0 al 255). Y el sistema que usa es de prueba y error, línea a línea del texto, descartando sospechosos.