Saltar al contenido

El carácter con secuencia de bytes 0x9d en la codificación ‘WIN1252’ no tiene equivalente en la codificación ‘UTF8’

Nuestro equipo de trabajo ha pasado horas investigando para darle solución a tu duda, te compartimos la solución y nuestro deseo es servirte de gran ayuda.

Solución:

El problema es ese 0x9D no es un valor de byte válido en WIN1252. Hay una tabla aquí: https://en.wikipedia.org/wiki/Windows-1252

El problema puede ser que esté importando un archivo UTF-8 y postgresql esté predeterminado en Windows-1252 (que creo que es el predeterminado en muchos sistemas de Windows).

Debe cambiar el conjunto de caracteres en la línea de comandos de Windows antes de ejecutar el script con chcp. O en postgresql puedes:

SET CLIENT_ENCODING TO 'utf8';

Antes de importar el archivo.

Simplemente especifique encoding 'UTF-8' como la codificación en el copy comando, por ejemplo (lo dividí en dos líneas para facilitar la lectura, pero lo mantengo todo en la misma línea):

copy dest_table from 'C:/src-data.csv' 
                 (format csv, header true, delimiter ',', encoding 'UTF8');

Más detalles:

El problema es que la codificación del cliente está configurada para WIN1252muy probablemente porque se está ejecutando en una máquina con Windows pero el archivo tiene una UTF-8 personaje en ella.

Puede verificar la codificación del cliente con

SHOW client_encoding;

 client_encoding
-----------------
WIN1252

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *