Si vous avez besoin de 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. Faites un clic droit sur la base de données et sélectionnez "Propriétés".
Mais cette erreur semble vous indiquer que votre fichier source contient des données UTF8 invalides. Cela signifie que l' copy
utilitaire a détecté ou deviné que vous lui fournissez un fichier UTF8.
Si vous utilisez une variante d'Unix, vous pouvez vérifier l'encodage (plus ou moins) avec l' file
utilitaire.
$ file yourfilename
yourfilename: UTF-8 Unicode English text
(Je pense que cela fonctionnera également sur les Mac dans le terminal.) Je ne sais pas comment faire cela sous Windows.
Si vous utilisez ce même utilitaire sur un fichier provenant de systèmes Windows (c'est-à-dire un fichier qui n'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 en un encodage connu, de changer l'encodage de votre client, ou les deux. (Nous repoussons vraiment les limites de mes connaissances sur les encodages.)
Vous pouvez utiliser l' iconv
utilitaire pour modifier le codage des données d'entrée.
iconv -f original_charset -t utf-8 originalfile > newfile
Vous pouvez modifier le codage psql (le client) en suivant les instructions sur la prise en charge des jeux de caractères . Sur cette page, recherchez l'expression «Pour activer la conversion automatique du jeu de caractères».