banniere

Le portail francophone de la géomatique


Toujours pas inscrit ? Mot de passe oublié ?
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

Annonce

Rencontres QGIS 2025

L'appel à participation est ouvert jusqu'au 19 janvier 2025!

#1 Tue 27 September 2011 10:40

iain
Participant occasionnel
Lieu: Avignon
Date d'inscription: 24 Apr 2006
Messages: 15
Site web

[MAJIC3] Problème de codage de caractères NBAT

Bonjour à tous,

J'essaie d'extraire les données du fichier MAJIC "NBAT" et de les intégrer dans mon SGBD (PostGreSQL 9.1).

La requête SQL suivante fonctionne pour les millésimes MAJIC jusqu'en 2008:

---------------------------------------------------
CREATE TABLE majic2.nonbati_tmp
(tmp character varying (150))
WITH (OIDS=FALSE);
ALTER TABLE majic2.nonbati_tmp OWNER TO postgres;
SET client_encoding TO 'WIN1252';
COPY majic2.nonbati_tmp FROM 'c:/INPUT/NBAT/NBAT' DELIMITERS '|' QUOTE '@' CSV HEADER;
---------------------------------------------------

Par contre, à partir du millésime 2009, cette requête ne fonctionne plus.

Je reçois le message d'erreur suivant:

---------------------------------------------------
ERREUR:  séquence d'octets invalide pour l'encodage « WIN1252 » : 0x00
CONTEXT:  COPY nonbati_tmp, ligne 1

********** Erreur **********

État SQL :22021
Contexte : COPY nonbati_tmp, ligne 1
---------------------------------------------------

Le problème viendrait donc du codage de caractères dans le fichier MAJIC "NBAT".
(C'est pourquoi je poste ce message dans le forum "données" et non pas dans "Geo'BD")

J'ai essayé d'ouvrir ce fichier avec le logiciel text "gedit", mais il n'a pas été capable de détecter le codage de caractères.
Pourtant, il arrive à ouvrir le fichier NBAT version 2008 et tous les fichiers s'ouvrent dans Bloc-notes de Windows.

Voici donc un extrait des 3 premières lignes du fichier MAJIC "NBAT" version 2008
(que j'ai anonymisé pour ce forum en remplaçant le code commune par "######") :

---------------------------------------------------
######    A0002    10000000985AL0015429111991     0                  11                   00039B0394101
######    A0002    21000000985L00154  00000000000000000000A13S        0
######    A0002  ŸŸ36 0000000000 0000000000 0000000000 0000000000 0000000000 0000000000 0000000000 0000000000
---------------------------------------------------

et voici un extrait des 3 premières lignes du fichier MAJIC "NBAT" version 2010 :
---------------------------------------------------
######    A0002    10000000985AL0015429111991     0                  11                   00039B0394101 41011120351022   03003010CI6A 
######    A0002    21000000985L00154  00000000000000000000A13S        0
######    A0002  ŸŸ36 0000000000 0000000000 0000000000 0000000000 0000000000 0000000000 0000000000 0000000000000000000
---------------------------------------------------

Je voulais donc savoir ce qui a changé entre 2008 et 2009 au niveau du format du fichier NBAT et s'il existe une solution à ce problème de format.

Un grand merci par avance pour vos réponses,

Hors ligne

 

#2 Tue 27 September 2011 11:07

ChristopheV
Membre
Lieu: Ajaccio
Date d'inscription: 7 Sep 2005
Messages: 3199
Site web

Re: [MAJIC3] Problème de codage de caractères NBAT

Bonjour,

IL s'agit d'un problème d'encodage de caractères.

Le WIN1252 correspond à l'encodage par défaut de windows avec le paramètre régional "french", si votre BD est encodée en Latin9 ou unicode ou UTF-8 cela ne va pas marcher.

Mettez votre BD en Latin1 (win1252) et cela devrait fonctionner. (bon là je suis pas trop sur), pour ma part j'utilise un flux unicode pour lire les fichiers MAJIC et cela fonctionne, par contre je ne fait pas l'introduction de données directement dans Postgis, d'où mon incertitude.


Christophe
L'avantage d'être une île c'est d'être une terre topologiquement close

Hors ligne

 

#3 Thu 29 September 2011 10:20

iain
Participant occasionnel
Lieu: Avignon
Date d'inscription: 24 Apr 2006
Messages: 15
Site web

Re: [MAJIC3] Problème de codage de caractères NBAT

[PROBLEME RESOLU]

Bonjour,

et un très grand merci pour votre réponse.

En effet, la base de données était encodée en UTF-8 avec le paramètre régional "french" et j'avais essayé de forcer l'intégration des données avec un encodage WIN1252 (SET client_encoding TO 'WIN1252'), ce qui a généré l'erreur.

Il n'est pas possible de changer ce paramètre pour une base de données existante, alors j'ai crée une nouvelle base en WIN1252 avec le même paramètre régional "french", et l'intégration des données fonctionne parfaitement.

Pour les utilisateurs de PostGre confrontés à ce problème, voici la requête pour la création de cette nouvelle base de données:
---------------------------------------------------
CREATE DATABASE majic
  WITH OWNER = postgres
       ENCODING = 'WIN1252'
       TABLESPACE = pg_default
       TEMPLATE = template0
       LC_COLLATE = 'French_France.1252'
       LC_CTYPE = 'French_France.1252'
       CONNECTION LIMIT = -1;
---------------------------------------------------

Encore merci,
Bien cordialement

Hors ligne

 

#4 Thu 29 September 2011 14:10

ChristopheV
Membre
Lieu: Ajaccio
Date d'inscription: 7 Sep 2005
Messages: 3199
Site web

Re: [MAJIC3] Problème de codage de caractères NBAT

Merci du retour


Christophe
L'avantage d'être une île c'est d'être une terre topologiquement close

Hors ligne

 

Pied de page des forums

Powered by FluxBB