Jump to content United States-English
HP.com Home Products and Services Support and Drivers Solutions How to Buy
» Contact HP
More options
HP.com home
HP-UX 11.0 - 11i Internationalization Features White Paper > Chapter 2 Encoding Characters

Euro Support

» 

Technical documentation

Complete book in PDF
» Feedback
Content starts here

 » Table of Contents

 » Glossary

 » Index

Euro (ISO 8859-15 Locales) [11.0 patch, 11i v1]

Euro support is provided through locale support for the ISO 8859-15 character set. ISO 8859-15 is a newly ratified character set that differs from ISO 8859-1 by supporting eight new characters. Specific enhancements are provided to allow Euro display, input, and processing capabilities.

Fourteen new locales, listed in Table 2-1 “New ISO 8859-15 Locales”, have been created based on ISO 8859-15.

Table 2-1 New ISO 8859-15 Locales

LocaleLanguage (Region)
C.iso885915 “C”
da_DK.iso885915@euroDanish (Denmark)
de_DE.iso885915@euroGerman (Germany)
en_GB.iso885915@euroEnglish (Great Britain)
es_ES.iso885915@euroSpanish (Spain)
fi_FI.iso885915@euroFinnish (Finland)
fr_CA.iso885915French (Canada)
fr_FR.iso885915@euroFrench (France)
is_IS.iso885915@euroIcelandic (Iceland)
it_IT.iso885915@euroItalian (Italy)
nl_NL.iso885915@euroDutch (The Netherlands)
no_NO.iso885915@euroNorwegian (Norway)
pt_PT.iso885915@euroPortuguese (Portugal)
sv_SE.iso885915@euroSwedish (Sweden)

 

Source files for supported European locales are also supplied.

Applications must choose to enable ISO 8859-15 support by setting the LANG environment variable to the desired locale.

ISO 8859-15 support is part of HP-UX and is available to all platforms, but is not automatically turned on for any application. No special configuration is required, and there are no compatibility issues involved with the addition of this new feature.

Locales are installed, based on which current language filesets are already installed on a target system.

The LC_MONETARY environment variable is set to the euro for all locales listed in Table 2-1 “New ISO 8859-15 Locales” except C.iso885915 and fr_CA.iso885915. Standard euro formatting rules apply to ALL locales where this environment variable is set to the euro. As a result, users may encounter a change to the decimal and thousands separators for the currency, whereas decimal and thousands separators outside the monetary area stay the same as in previous locales.

For example, in the French locale, the thousands separator is a space and the decimal point is a comma. However, the international standard for the thousands separator for the euro currency is a period. A user who has the LC_MONETARY locale category set to fr_FR.iso885915@euro sees the following:

  • The number one thousand five hundred and fifty and a half, outside the monetary area, displays as 1 550,50.

  • One thousand five hundred and fifty euro and 50 cents displays as EUR 1.550,50.

Users can change the LC_MONETARY value to their national currency unit.

Users enable ISO 8859-15 automatically in some locales when logging in through the CDE.

CDE Support

New functionality was introduced in CDE product to support input and display of the euro symbol. These changes are for both workstations and the servers.

X Window Support

New functionality has been added to Xlib to support input and display of the euro symbol. This was done by adding internal support for the ISO8859-15 character set, as well as support of UTF8 on 11.0. When an Xlib application is started, Xlib internals determine if the locale is set to an ISO8859-15 character set. If it is, Xlib performs character lookups using the eight new symbols present in the ISO8859-15 character set. Currently, only applications linked with X11R6 (X Window version X11 Release 6) support the ISO8859-15 character set. Older X11 versions are not currently supported.

Libraries

The libc and Xlib libraries support the euro symbol.

Codeset Converters

New iconv tables exist to support conversion from/to ISO 8859-15 and ISO 8859-1, ucs2, and utf8. The additional disk space in HP-UX 11.0 is 6.42 MB. No additional memory is required.

LaserJet Printers

An important aspect of euro support is the ability to print the new symbol on LaserJet printers using existing standard lp(1) model files.The ISO8859-15 font set is resident on the HP 4500 Color LaserJet Printer, that contains the euro symbol at position A4 (hexadecimal). The data file must contain this code to print the euro symbol.

A new utility is being provided to download the fonts to the printer RAM. These fonts will then reside in the printer’s RAM until the next power cycle.

Use the lp option -ocs9N (or -oscs9N) to select the ISO 8859-15 character set as the primary (or secondary) character set. For example:

lp -dprinter_name -ocs9N -oother_options print_filename

NOTE: The case is significant. Be sure to use an upper case “N”.

Euro - ISO 10646/Unicode Support [11i v1]

HP-UX 11i v1 provides system level support for the Unicode 2.1/ISO 10646 character set. Hewlett-Packard support for Unicode provides a basis of enabling heterogeneous interoperability for all geographic areas.

ISO 10646 is an industry standard for defining a single encoding that uniquely encodes all the characters of the modern world. Unicode 2.1 is the companion specification to ISO 10646. Unicode specification at revision 2.1 includes the euro symbol at 0x20AC codepoint.

Euro support to input, store, retrieve, display, and print the euro symbol has been added for this release. In addition to the base functionalities, HP-UX 11i v1 is providing the following new functionalities for the euro:

  • Dual currency support using @euro modifier

  • UTF-8 (Universal Transformation Format - 8 Bit) performance tuning

  • Euro display and processing capabilities for Asian UTF-8 locales

  • Additional converter tables

Specific enhancements are provided to locale, localedef, libc, Xlib and iconv to achieve those new functionalities.

A subset of existing European locales has been modified to support dual currency to meet euro standard monetary formatting.

Table 2-2 “Supplied utf8 Locales Supporting Dual Currency” displays the list of euro locales supplied that support dual currency:

Table 2-2 Supplied utf8 Locales Supporting Dual Currency

LocaleLanguage (Region)

de_DE.utf8

German (Germany)

es_ES.utf8

Spanish (Spain)

fr_FR.utf8

French (France)

it_IT.utf8

Italian (Italy)

sv_SE.utf8

Swedish (Sweden)

 

Table 2-3 “Supplied utf8 Locale Sources Supporting Dual Currency” gives the list of locale sources being supplied that include dual currency support:

Table 2-3 Supplied utf8 Locale Sources Supporting Dual Currency

LocaleLanguage (Region)

da_DK.utf8

Danish (Denmark)

de_DE.utf8

German (Germany)

el_GR.utf8

Greek (Greece)

en_GB.utf8

English (Great Britain)

es_ES.utf8

Spanish (Spain)

fi_FI.utf8

Finnish (Finland)

fr_FR.utf8

French (France)

is_IS.utf8

Icelandic (Iceland)

it_IT.utf8

Italian (Italy)

nl_NL.utf8

Dutch (The Netherlands)

no_NO.utf8

Norwegian (Norway)

pt_PT.utf8

Portuguese (Portugal)

sv_SE.utf8

Swedish (Sweden)

 

To build these locales, refer to the localedef(1M) man page.

When the LANG and/or LC_* environment variables are set to a euro supported locale, the national monetary formatting rules are used. The LC_MONETARY environment variable should be set to the euro-supported locale name with the @euro modifier to use/access euro monetary formatting rules.

For example, to specify the euro as the currency for French, use the following settings:

 LANG=fr_FR.utf8
  LC_MONETARY=fr_FR.utf8@euro

Similarly, to specify French francs:

 LANG=fr_FR.utf8

To access the monetary unit and the related monetary formatting rules programmatically, toggle between the alternate monetary units via setlocale(3C) calls:

/* Handle euro in strfmon(), ... */
setlocale(LC_MONETARY, “fr_FR.utf8@euro”);

...
/* Handle French francs in strfmon(), ... */
setlocale(LC_MONETARY, “fr_FR.utf8”);

When the LC_MONETARY environment variable is set to euro, the formatting in the monetary category uses euro standard formatting rules, whereas other categories use the local convention in formatting. As a result, users may encounter a change to the decimal and thousands separators for the currency, whereas decimal and thousands separators outside the monetary area, like in numeric numbers, remain in local convention format.

For example, in the French locale the thousands separator is a space and the decimal point is a comma. However, the international standard for the thousands separator for the euro currency is a period. So, a user that has the LC_MONETARY locale category set to fr_FR.utf8@euro sees the following behavior:

  • The number “One thousand five hundred and fifty and a half” outside the monetary area displays as 1 550,50.

  • The monetary number “One thousand five hundred and fifty euro and 50 cents” displays as EUR 1.550,50

Commands

The localedef(1m) command has been enhanced to handle the @euro modifier in order to build dual currency locale(s).

The lp(1)model scripts for the dual currency locales have been enhanced to print the euro character.

libc

Standard libc supports @euro dual currency designation.

Codeset Converters

New iconv converter tables are available to support conversion from utf8, ucs2, and iso885915 to IBM euro-enabled codepages and PC codepages:

Table 2-4 utf8 and IBM's Codepages (EBCDIC)

utf8 <-> cp1140

utf8 <-> cp1141

utf8 <-> cp1142

utf8 <-> cp1143

utf8 <-> cp1144

utf8 <-> cp1145

utf8 <-> cp1146

utf8 <-> cp1147

utf8 <-> cp1148

utf8 <-> cp1149

 

Table 2-5 ucs2 and IBM's Codepages (EBCDIC)

ucs2 <-> cp1140

ucs2 <-> cp1141

ucs2 <-> cp1142

ucs2 <-> cp1143

ucs2 <-> cp1144

ucs2 <-> cp1145

ucs2 <-> cp1146

ucs2 <-> cp1147

ucs2 <-> cp1148

ucs2 <-> cp1149

 

Table 2-6 iso885915 and IBM's Codepages (EBCDIC)

iso885915 <-> cp1140

iso885915 <-> cp1141

iso885915 <-> cp1142

iso885915 <-> cp1143

iso885915 <-> cp1144

iso885915 <-> cp1145

iso885915 <-> cp1146

iso885915 <-> cp1147

iso885915 <-> cp1148

iso885915 <-> cp1149

 

Table 2-7 utf8 and PC Codepages (EBCDIC)

utf8 <-> cp437

utf8 <-> cp737

utf8 <-> cp775

utf8 <-> cp850

utf8 <-> cp852

utf8 <-> cp855

utf8 <-> cp857

utf8 <-> cp1860

utf8 <-> cp861

utf8 <-> cp862

utf8 <-> cp863

utf8 <-> cp864

utf8 <-> cp865

utf8 <-> cp866

utf8 <-> cp869

utf8 <-> cp874

utf8 <-> cp1250

utf8 <-> cp1251

utf8 <-> cp1252

utf8 <-> cp1253

utf8 <-> cp1254

utf8 <-> cp1255

utf8 <-> cp1256

utf8 <-> cp1257

utf8 <-> cp1258

 

Table 2-8 ucs2 and PC Codepages (EBCDIC)

ucs2 <-> cp437

ucs2 <-> cp737

ucs2 <-> cp775

ucs2 <-> cp850

ucs2 <-> cp852

ucs2 <-> cp855

ucs2 <-> cp857

ucs2 <-> cp1860

ucs2 <-> cp861

ucs2 <-> cp862

ucs2 <-> cp863

ucs2 <-> cp864

ucs2 <-> cp865

ucs2 <-> cp866

ucs2 <-> cp869

ucs2 <-> cp874

ucs2 <-> cp1250

ucs2 <-> cp1251

ucs2 <-> cp1252

ucs2 <-> cp1253

ucs2 <-> cp1254

ucs2 <-> cp1255

ucs2 <-> cp1256

ucs2 <-> cp1257

ucs2 <-> cp1258

 

Impact

To use euro monetary formatting rules, the LC_MONETARY environment variable must be set to the euro supported locale name with the @euro modifier appended to it.

The size requirement for locale sources and binaries is 20.1 MB, and 191 KB for the converter tables.

There are no compatibility issues involved with the addition of these features.

Applications using UTF-8 locales should see improved collation performance compared with UTF-8 locales delivered in previous releases.

Greek Euro Support [11i v1.6]

In June 2000, Greece joined the European Union Member countries in adopting the Euro as their currency, with the complete transition effective as of January 1, 2002.

Systems level support has been provided to allow for the input, storage, retrieval, display, and printing of the Euro within the two supported Greek locales: el_GR.utf8 and el_GR.iso88597. Greek Euro support has been provided in HP-UX 11i Version 1.6 through updates to locales, iconv converters, fonts, Xlib and CDE.

The level of Euro support provided for Greek is similar to that provided for Western European countries as of HP-UX 11.0 Extension Pack (May 1999) and HP-UX 11.11:

  • Dual currency support using the @euro modifier

  • Euro display and processing capabilities

  • Euro input capabilities in Greek locales

  • Printer support of Euro with other Greek characters

Euro-enabled Greek Locales

The el_GR.utf8 and el_GR.iso88597 locales have been enhanced with the addition of four new characters, including the Euro. Table 2-9 “New Characters” illustrates these four new characters.

Table 2-9 New Characters

Character Name

ISO-88597Code Point UnicodeUTF-8

Euro

0xA40x20AC0xE282AC
Drachma Sign0xA50x20AF0xE282AF
Greek Ypogegrammeni0xAA0x037A0xCDBA
Greek Question Mark0xAE0x037E0xCDBE

 

The el_GR.utf8 locale binaries are now shipping as part of the release. Previously, only the el_GR.utf8 source file was provided.

Locale-specific Monetary Processing and Formatting

When the LANG and/or LC_* environment variables are set to these Euro-enabled locales, the national monetary formatting rules are used to continue support for legacy (Drachma-based) applications. To access the monetary formatting rules for the Euro within the respective locale, the LC_MONETARY environment variable should be set to the desired locale name with the @euro modifier.

For example, to specify the Euro as the currency in the Greek UTF-8 locale, the following environment variables should be set to enable monetary formatting, such as used by strfmon(3C):

LANG=el_GR.utf8
LC_MONETARY=el_GR.utf8@euro

Data Conversion (iconv) for the Greek Euro

The following Greek iconv converters have been updated to support the four new characters added to ISO-88597 (see Table 2-9 “New Characters” in the Euro-enabled Greek Locales section) in conversions with UTF-8 and Unicode:

iso87 <-> ucs2
iso87 <-> utf8

The following iconv converters are now available to support data conversions between Greek EBCDIC (code page 875) and UTF-8/Unicode:

greee <-> ucs2
greee <-> utf8

ISO-88597 and Greek EBCDIC converters are enhanced to support the Euro and are aligned to match the expected mappings as defined by IBM for code page 875. The following converter table has been modified to align with the expected mappings:

greee <-> iso87

Table 2-10 “Modified Code Mapping Changes From ISO-88597” shows the modified code mapping changes made in converting from ISO-88597 to Greek EBCDIC/ Code Page 875 (iso87=greee).

Table 2-10 Modified Code Mapping Changes From ISO-88597

ISO-88597Code Page 875 (Incorrect)

Code Page 875 (Corrected)

0x270xd00x7d
0x400xff0x7c
0x5c0xff0xe0
0x7b0xff0xc0
0x7c0xff0x6a
0x7d0xff0xd0
0x7e0xff0xa1
0xa00xff0x74
0xa10x790xce
0xa20xd00xde
0xa30x7b0xb0
0xa40xff0xfc
0xa60xff0xdf
0xa70x7c0xeb
0xa80xa10x70
0xa90x830xfb
0xab0x4c0xee
0xac0xff0xef
0xad0x600xca
0xaf0xca0xcf

0xb0

0xe00x90

0xb2

0xf20xea

0xb3

0xf30xfa

0xb4

0x7d0xa0

0xb5

0x7d0x80

0xb7

0x4b0xdd

0xbb

0x6e0xfe

0xbd

0xea0xdb
0xc00xb50xcc
0xda0x490x68
0xdb0x630x69
0xe00xb70xcd

 

Table 2-11 “Modified Code Mapping Changes From Greek EBCDIC/Code Page 875” shows the modified code mapping changes made in converting from Greek EBCDIC / Code Page 875 to ISO-88597 (greee=iso87).

Table 2-11 Modified Code Mapping Changes From Greek EBCDIC/Code Page 875

Code Page 875ISO-88597 (Incorrect)ISO-88597 (Corrected)
0x70x7f0x9f
0x680xff0xda
0x690xff0xdb
0x6a0xff0x7c
0x700xff0xa8
0x740xff0xa0
0x7b0xa30x23
0x7c

0xa7

0x40
0x7d0xb40x27
0x800xff0xb5
0x900xff0xb0
0xa00xff0xb4
0xa1

0xa8

0x7e
0xb00xff0xa3
0xc00xff0x7b
0xca

0xaf

0xad
0xcc0xff0xc0
0xcd0xff0xe0
0xce0xff0xa1
0xcf0xff0xaf
0xd0

0x27

0x7d
0xdb0xff0xbd
0xdd0xff0xb7
0xde0xff0xa2
0xdf0xff0xa6
0xe00xb00x5c
0xea

0xbd

0xb2
0xeb0xff0xa7
0xee0xff0xab
0xef0xff0xac
0xfa0xff0xb3
0xfb0xff0xa9
0xfc0xff0xa4
0xfe0xff0xbb

 

Table 2-12 “Characters with No Code Points Defined within EBCDIC Code Page 875” shows three characters that currently have no Greek EBCDIC Code Page 875 code points defined. Consequently, in converting from either ISO-88597, Unicode, or UTF-8, these characters are mapped to the Undefined Character for Greek EBCDIC (0xFF). These 3 characters are subject to data loss in round-trip conversions between these codesets.

Table 2-12 Characters with No Code Points Defined within EBCDIC Code Page 875

ISO-88597

UnicodeGreek EBCDIC (CP 875)Character

0xa5

0x20af<undefined>Drachma Sign
0xaa0x037a<undefined>Greek Ypogegrammeni
0xae0x037e<undefined>Greek Question Mark

 

Displaying the Euro for Greek

X11R6 Xlib has been enhanced to support the Euro when running in el_GR.iso88597 and el.GR.utf8 locales.

New font glyphs have been added to support the four new characters in ISO-88597. CDE is providing XlocaleDB for the el_GR.utf8 locale, and with this new XlocaleDB, el_GR.utf8 uses updated ISO-88597 fonts for displaying the Euro.

Inputting the Euro for Greek

Additional keymap support has been added to allow users of Greek-Latin keyboards to input the Euro symbol. The AltGr+5 sequence can be used with this new keymap (PS2_DIN_Greek_Euro) to input the Euro character. Alternatively, users with US English keyboards can use the PS2_DIN_US_English_Euro keymap where the Euro symbol is mapped to AltGr+4.

CDE provides support to input and display the Euro in the iso8859-7 locale. The additional three characters do not have keybindings in any Xserver keymaps. The reason for this is that there is no standard definition among the X Window vendors on which key sequences should activate those other symbols. As a result, they are assigned key bindings whenever the mappings are clarified by the industry

Printing Euro with Greek Characters

The standard lp(1) command is used to print Euro and Greek characters on LaserJet printers. The LaserJet printers should have the resident Greek character/font set with the Euro symbol included. Current LaserJet printer models with this support include the LaserJet 1220 and the LaserJet 2200.

Use the lp option -ocs12N to select the Greek character/font set. For example:

lp -dprinter_name -ocs12N -oother_options print_filename

Impact

The base Greek Euro offering (installed in all systems), requires approximately 14.2 MB of additional disk space.

No additional memory is required for running in either the el_GR.iso88597 or el_GR.utf8 locales.

Compatibility

iconv conversion between ISO-88597 and Greek EBCDIC (CP 875) yield different results than in previous releases. In 11i Version 1.6, these tables have been corrected to provide the correct conversion mappings.

It is recommended that all Greek-encoded legacy persistent data stored on previous versions of HP-UX be converted to ISO-88597 from Greek EBCDIC before being moved to an 11i Version 1.6 system.

Printable version
Privacy statement Using this site means you accept its terms Feedback to webmaster
© 2001-2003, 2005 Hewlett-Packard Development Company, L.P.