Dado que el conjunto de caracteres latin-1 (también conocido como ISO-8859-1) está incrustado en el conjunto de caracteres Unicode como 256 puntos de código más bajos, esperaría que la conversión es trivial, pero no vi ninguna función de conversión de codificación latin-1 en Data.Text.Encoding
que contenga solo funciones de conversión para las codificaciones UTF comunes.Convertir entre Data.ByteString y Data.Text codificado en Latin1
¿Cuál es la forma recomendada y/o eficiente para convertir entre Data.ByteString
valores codificados en representación latin-1 y valores Data.Text
?
Por cierto, la suposición de que "dado que el conjunto de caracteres latin-1 está incrustado en el conjunto de caracteres Unicode como sus 256 puntos de código más bajos, espero que la conversión sea trivial" no está justificada. No hay ninguna razón para esperar que las corrientes secundarias resultantes de la codificación de una única secuencia de punto de código en dos codificaciones diferentes tengan una relación trivial entre sí. –
@DanielWagner: Sí, soy consciente de que, en el caso general, no debería esperar esto (por ejemplo, si 'Data.Text' usó utf8 como representación interna de Unicode), pero la versión actual de' Data.Text' la biblioteca usa representación UTF16, para la cual la conversión de latin1 es de hecho una conversión trivial que consiste en insertar cero octetos después o antes (dependiendo de si se requiere UTF16LE o UTF16BE) cada octeto latin1. – hvr