PostgreSQL
La base de données la plus sophistiquée au monde.

Ouverture de session

Navigation

Contactez-nous

Administration du site :
"equipe chez postgresqlfr point org"

Contact presse :
"fr chez postgresql point org"

Contact association :
"bureau chez postgresqlfr point org"

Questions PostgreSQL :
 IRC :
  serveur irc.freenode.net
  canal #postgresqlfr

Recherche

Accéder aux archives

« Octobre 2008  
Lun Mar Mer Jeu Ven Sam Dim
  2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31  

Syndication

Flux XML

Sondage

Quelle est la version de PostgreSQL la plus répandue sur vos serveurs ?
8.3
10%
8.2
42%
8.1
40%
8.0
2%
7.4
6%
7.3 ou antérieure
0%
Nombre de votes: 48

Postgresql 8.3 et les characters set

Technique - installation | Postgresql 8.3 et les characters set

Par sparky le 08/02/2008 - 14:35

Bonjour,

J'ai installé postgresql 8.3 pour le compiler moi-même j'ai utilisé les options

--prefix=/opt/pgsql8.3' '--with-pgport=5442' '--enable-multibyte' '--enable-nls

Malheureusement, quand j'essaie de créer une base de données dans un autre encodage, j'obtiens une erreur

postgres=# create database account_repository encoding='latin1';
ERROR: encoding LATIN1 does not match server's locale en_US.UTF-8
DETAIL: The server's LC_CTYPE setting requires encoding UTF8.
postgres=# \q

Donc j'ai essayé d'initialisé autrement avec initdb mais l'erreur persiste (idem avec -E C ou -E posix)
initdb -E latin1
The files belonging to this database system will be owned by user "postgres".
This user must also own the server process.

The database cluster will be initialized with locale en_US.UTF-8.
initdb: encoding mismatch
The encoding you selected (LATIN1) and the encoding that the
selected locale uses (UTF8) do not match. This would lead to
misbehavior in various character string processing functions.
Rerun initdb and either do not specify an encoding explicitly,
or choose a matching combination.

Vraiment c'est la première que ce genre de problème m'arrive avec postgresql,

Merci,

..D..

Options d'affichage des commentaires

Sélectionnez la méthode d'affichage des commentaires que vous préférez, puis cliquez sur "Sauvegarder les paramètres" pour activer vos changements.

Ce n'est plus permis !!

sparky/ = 8 FĂ©vrier, 2008 - 14:39

Stefan Kunick wrote:

PostgreSQL version: 8.3RC2
Operating system: Windows Longhorn
Description: Create Database with another encoding as the encoding
from postgres

Details:

I installed postgres with the encoding 1252. After this, i started the
program createdb (createdb -E LATIN1 -O postgres -p 5555 -U postgres). The
program stopped with the error message: createdb: database creation failed.
Error: encoding LATIN1 does not match server's locale German_Germany.1252
DETAIL: The server's LC_CTYPE setting requires encoding WIN1252.

With the former version 8.2, i can create a database with other encoding

Yes, that's an intentional change. From release notes:

Disallow database encodings that are inconsistent with the server's locale setting (Tom)

On most platforms, C locale is the only locale that will work with any database encoding. Other locale settings imply a specific encoding and will misbehave if the database encoding is something different. (Typical symptoms include bogus textual sort order and wrong results from upper() or lower().) The server now rejects attempts to create databases that have an incompatible encoding.


La solution

sparky/ = 8 FĂ©vrier, 2008 - 15:05

faire
export LC_ALL=en_US.posix
initdb

Démarrer postgresql puis il est possible de créer des db dans n'importe quelle character set, ouf !!! Il fallait le savoir. Sinon il n'est possible d'avoir certaines db en latin1 et d'autres en utf8


soluce n°2

cybercandyman/ = 5 Mars, 2008 - 11:15

Salut,

je viens de recontrer le meme probléme,
je l'ai contourné en faisaint un initdb --no-locale

ciao


© PostgreSQLFr, tous droits rĂ©servĂ©s.
Site déclaré à la CNIL sous le numéro 1074678, conformément à la Loi en vigueur.