[pyar] Problema con codificación de archivo

Facundo Batista facundobatista en gmail.com
Mar Jun 28 10:00:49 ART 2016


2016-06-27 12:59 GMT-03:00 Gustavo Campanelli <gedece en gmail.com>:

> Revisando veo que el archivo original está condificado como UTF-8, o sea
> unicode, cuando el FoxPro precisa ASCII (aunque no la versión de 128 bytes,
> con la de 256 que tiene la Ñ en posición 165 funciona correctamente)
>
> Estoy precisadon alguna idea para orientarme hacia una solución, ya que lo
> que encuentro en internet no me está sirviendo. No puedo convertir
> ignorando, ya que es un archivo con posiciones fijas

Tenés que recodificar el archivo, pasándolo de UTF-8 a la codificación
que desees (esa que tiene la Ñ en la posición 165).

Por ejemplo, acá yo estoy agarrando una cadena de bytes codificada en
UTF-8 y la estoy pasando a latin-1. En tu caso, tenés que hacer lo
mismo con las cadenas de bytes que leas del archivo antes de mandarlas
a fox-pro, pero cambiando latin-1 por la codificación esa que decís:

(py3)
>>> cad = b'mo\xc3\xb1o'
>>> cad
b'mo\xc3\xb1o'
>>> cad.decode("utf8")
'moño'
>>> cad.decode("utf8").encode("latin1")
b'mo\xf1o'

Slds.

-- 
.    Facundo

Blog: http://www.taniquetil.com.ar/plog/
PyAr: http://www.python.org/ar/
Twitter: @facundobatista


Más información sobre la lista de distribución pyar