Si vous devez stocker des données UTF8 dans votre base de données, vous avez besoin d'une base de données qui accepte UTF8. Vous pouvez vérifier l'encodage de votre base de données dans pgAdmin. Il suffit de faire un clic droit sur la base de données et de sélectionner "Propriétés".
Mais cette erreur semble vous indiquer qu'il y a des données UTF8 invalides dans votre fichier source. Cela signifie que le copy
a détecté ou deviné que vous lui fournissez un fichier UTF8.
Si vous êtes sous une variante d'Unix, vous pouvez vérifier l'encodage (plus ou moins) avec la commande file
utilitaire.
$ file yourfilename
yourfilename: UTF-8 Unicode English text
(Je pense que cela fonctionnera aussi sur les Macs dans le terminal.) Je ne sais pas comment faire sous Windows.
Si vous utilisez ce même utilitaire sur un fichier provenant des systèmes Windows (c'est-à-dire un fichier qui est pas encodé en UTF8), il affichera probablement quelque chose comme ceci :
$ file yourfilename
yourfilename: ASCII text, with CRLF line terminators
Si les choses restent bizarres, vous pouvez essayer de convertir vos données d'entrée dans un encodage connu, de changer l'encodage de votre client, ou les deux. (Nous étendons vraiment les limites de mes connaissances sur les encodages).
Vous pouvez utiliser le iconv
pour modifier l'encodage des données d'entrée.
iconv -f original_charset -t utf-8 originalfile > newfile
Vous pouvez changer l'encodage de psql (le client) en suivant les instructions de la page Support des jeux de caractères . Sur cette page, recherchez la phrase "Pour activer la conversion automatique des jeux de caractères".
0 votes
Changer l'option d'encodage à l'importation. J'ai mis le mien sur "Windows-1251" et ça a marché sans problème.
1 votes
Merci @BrianD, j'étais également confronté à ce problème et cela a fonctionné pour moi.