Suite

Erreur d'encodage lors de l'importation vers PostgreSQL à l'aide du fichier SQL osm2po

Erreur d'encodage lors de l'importation vers PostgreSQL à l'aide du fichier SQL osm2po


Après avoir exécuté osm2po sur un fichier pbf pour l'Europe, j'importe les fichiers résultants dans une base de données compatible PostGIS et pgRouting. Lors de l'import psql, il signale de nombreuses erreurs d'encodage car l'encodage trouvé par WIN1252 n'a pas d'équivalent en UTF8.

Comment puis-je résoudre ce problème ?

Le fichier pbf initial a été téléchargé depuis GeoFabrik et osm2po utilisé dans la dernière version disponible sur la page Web d'Anitas. PostgreSQL est en version 9.2, pgRouting est en version 2.0


Veuillez vous assurer que votre base de données utilise UTF-8 codage.

Et il semble qu'il y ait un bug ? dans Postgres 9.4 qui ne se produit pas dans les anciennes versions. Maintenant, vous devrez également modifier l'encodage de votre client pour psql. Eh bien, vous utilisez 9.2, mais c'est peut-être le même problème.

https://dba.stackexchange.com/questions/71597/postgresql-set-default-psql-client-encoding


Vous avez créé une base de données en codage UTF-8 et vous devez écrire dans les données de la base de données codées WIN1252. Avant d'importer, modifiez l'encodage de votre base de données ('prg') sur WIN1252.

Exécutez la requête : update pg_database set encoding = pg_char_to_encoding('win1252') où datname = 'pgr'

Importez la carte à l'aide d'OSM2PO. Modifiez l'encodage des caractères de votre base de données en UTF-8 :

Exécutez la requête : update pg_database set encoding = pg_char_to_encoding('utf8') où datname = 'pgr'

J'ai utilisé cette méthode pour encoder WIN1251->UTF8.