Mapserver+PostGIS+Charset encoding problems
Marc Compte
mcompte at SIGTE.UDG.ES
Tue Nov 28 00:44:53 PST 2006
Hi,
Sorry if this has already been dealt with before but I searched the
archives and couldn't find an answer for this case.
I have a mapserver getting data from a PostGIS database. The database
charset encoding is defined as LATIN1 and the text in the tables
displays all fine and good in the pgAdmin as well as in my browser when
I just get a list of them with php.
When I set that particular field as a LABEL in the map-file the
resulting map shows the special characters wrong (mostly accents is what
I have to deal with). I guess that'd be normal since I wasn't specifying
any charset encoding yet. So I specified this attribute in my file ...
but now the funny thing comes.
When I set my layer to use ENCODING 'LATIN1' (same as my db) the map
just shows a different set of strange characters, but still not the
right glyphs to show.
If I try using UTF-8 in my LABEL then it starts working some of the
accents out but not all of them. Special chars that use the accent ´
appear perfectly (such as á, é, í, ó and ú), and so does the ¨ on top of
vowels. But the ` accent does not seem to work.
I have been struggling against this problem for a few days already. Now
I noticed that using the UTF-8 gives me back a set of characters that
ressembles very much that of LATIN2.
An 'à' (E0) in my database produces an 'r' with accent (´r).
An 'è' (E8) in my database produces a 'c' with the ^ symbol on top (and
inverted)
... ì (EC) => 'e' with ^ inverted on top
... ò (F2) => 'n' with ^ inverted on top
... ù (F9) => 'u' with a º on top
This leaves me very puzzled since I don't think I ever used or made any
reference to Latin2 charset. I am getting very confused about the whole
thing ... I have a db in Latin1, I try to convert it to UTF-8 and what I
get is Latin2 ... does this make sense to anyone? I don't know what else
to try, I made a replica of my table in a UTF-8 db, I have tried using
"options='-c client_encoding=LATIN1'" in my connection string ... and
always end up getting the same thing.
By the way, using "options='-c client_encoding=LATIN1'" in my
connection string produces exactly the same result as specifying
ENCODING 'UTF-8' in the LABEL of my map file, which seems also a bit weird.
Does anyone have any idea on what could I try next or where to look? I
am running out of ideas and I'm very close to go to the database and
strip all the accents out ...
Thanks,
Marc Compte
More information about the MapServer-users
mailing list