Kbase P77617: The Euro and Trademark symbols do not display with ISO8859-1 and OpenEdge.
Autor |
  Progress Software Corporation - Progress |
Acesso |
  Público |
Publicação |
  10/5/2010 |
|
Status: Verified
SYMPTOM(s):
The Euro and Trademark symbols do not display with ISO8859-1 and OpenEdge.
The Euro '?' and Trademark 'tm' symbols display as a black square with OE10 sessions started with the ISO8859-1 codepage.
In Progress 9.x the Euro and Trademark symbol can be displayed with the ISO8859-1 codepage using:
MESSAGE CHR(128) CHR(153), or DISPLAY CHR(128) CHR(153).
Euro (?) symbol is not displayed
FACT(s) (Environment):
OpenEdge 10.x
Windows
CAUSE:
The change in behavior is due to the Unicode Client support in OpenEdge 10. Progress now insists that if a character is to be displayed it must be supported by the code page being used to display it.
The Windows Western European native GUI codepage is 1252 and this code page supports the Euro, but iso8859-1 does not. In Progress 9.x with -cpinternal ISO8859-1, there is no conversion from cpinternal (ISO8859-1) to the display (1252). This is why CHR(128) displays as a Euro symbol in Progress 9, because CHR(128) is the Euro symbol in 1252, and the Windows GUI code page 1252 is being used to display the character.
However, in OpenEdge 10, there is a conversion between cpinternal and the display.
If the cpinternal code page does not contain the Euro and Trademark symbols, it will not appear on the screen.
If the symbols are needed in OpenEdge 10, then -cpinternal must be set to a code page that contains the character.
FIX:
On Western European Windows machines, GUI clients should use the Windows codepage 1252 for -cpinternal. If ISO8859-1 was also used previously for -cpstream, then in addition to -cpinternal set the -cpstream startup parameter to 1252. The code page iso8859-1 is a subset of 1252, and all its characters occupy the same positions in 1252. So a change in -cpinternal and -cpstream on Windows GUI clients can be made with no adverse effects. If you are using AppServer and/or WebSpeed, ensure that you also set -cpinternal and -cpstream parameters on their startup lines.
With GUI clients, ensure that the font that you use is capable of displaying those symbols if you intend to display them to the screen. For example, the default Progress font MS Sans Serif cannot display the tm symbol. Changing the font to Arial allows the character to be displayed.
You can change the Progress font used by either modifying the Windows registry (regedit), or progress.ini file if you happen to be using that.
Within the Windows registry, a new String Value will need to be added to:
HKEY_CURRENT_USER\Software\PSC\PROGRESS\10.1A\fonts\
Within the progress.ini file there is a section called [fonts] where the new font can be added.
The Progress client session will need to be restarted before it will recognize newly added fonts. As an example you can use 4GL code to reference new fonts with:
DISPLAY CHR(153) WITH font 8.