eurosign (€) in pdf shown as ¤

In our database we have some text containing the eurosign (€), a tabledump shows this character as hex A4 coded as cpstream=ISO8859-15.
The program is executed on a windows client with session parameters:
-cpterm iso8859-15
-cpstream iso8859-15
-cpinternal iso8859-15
-cpprint iso8859-15
We are using the most recent pdf_include.
Still the eurosign is shown as ¤ (which is iso8859-1 if i'm correct).
A test with a small testprogram with the eurosign hardcoded run from the editor shows the eurosign the right way.

We had exactly the same problem when printing this data to a printer, but after forcing to use iso8859-15 that was ok. (PUT {&StreamPrt} UNFORMATTED "~033(9N". /* iso 8859-15 latin9 */)
Thanks,


Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

Hello Even OpenEdge has the

Hello
Even OpenEdge has the wrong code...

MESSAGE ASC("€") "-" CHR(0xA4) "-" CHR(128) "-" CHR(ASC("€")) "-" SESSION:CPINTERNAL SESSION:CPSTREAM
VIEW-AS ALERT-BOX INFO BUTTONS OK.

gives:

---------------------------
Renseignement (Press HELP to view stack trace)
---------------------------
128 - € - € - € - iso8859-15 iso8859-15
---------------------------
OK Aide
---------------------------

So it would seem that 128 is preferred over 164 for the euro sign...

Wikipedia tells a bit more about this very character: http://en.wikipedia.org/wiki/Windows-1252 and the way it is handled.

I also made some tests which tend to confirm this, using the default font "Helvetica" and MS Windows' Arial. in both cases 128 gives € whereas 164 (A4) gives ¤.

So if I were you, i'd codepage-convert my strings from iso8859-15 to 1252.
As there is no direct conversion table, i'd go through utf-8.
something like
MESSAGE ASC(CODEPAGE-CONVERT(CODEPAGE-CONVERT(CHR(164), "utf-8", "iso8859-15"), "1252", "utf-8"))
VIEW-AS ALERT-BOX INFO BUTTONS OK.
or if the problem is only with the euro sign, a simple REPLACE will do it.

I'd be glad to see your little test program that shows the euro sign the right way, as I could not reproduce it myself. If you typed "€" in the procedure editor, then it is the character 128 (I checked with an hex editor).

Regards

Jice