Documentation Archive Developer

ADC Home > Reference Library > Technical Notes > Legacy Documents > Internationalization >

Legacy Documentclose button

Important: This document is part of the Legacy section of the ADC Reference Library. This information should not be used for new development.

Current information on this Reference Library topic can be found here:

The Euro Currency Symbol


Many developers have contacted Apple's Worldwide Developer Support group asking about Mac OS and Mac OS X Server support for the Euro currency symbol. This Technote attempts to gather all of the available information from Apple and also points to various sites on the internet that deal specifically with this new currency symbol.

 Updated: [Sep 14 1998]

What is the Euro and what does it look like?


The Euro currency symbol

The Euro is the name of the proposed single currency symbol for the European Union. According to the European Union, the Euro is scheduled to exist as banking currency beginning on January 1, 1999, and it will move into more general use with the introduction of coins and notes on January 1, 2002. We recommend that all developers add support for the Euro now to prepare for its launch in 1999. For more information on the Euro, please see The European Union web site.

Back to top

Unicode and the Euro

As stated by the Unicode Consortium's Unicode Technical Report #8: "The Euro character is encoded in the Unicode Standard as U+20AC EURO SIGN. To avoid confusion, the historical character U+20A0 EURO-CURRENCY SIGN has been updated with an informative note and a cross reference to U+20AC EURO SIGN." Please see the Unicode Consortium's Unicode Technical Report #8 for more detail.

Back to top

Mac OS Support - Fonts and Printing

Mac OS Fonts

The standard European glyph, as designed and specified by the European Union in Brussels, has been added to all of Apple's Mac OS fonts to be distributed with Mac OS 8.5, due out later in 1998. Under Mac OS 8.5, you will find the Euro glyph in the following fonts: Apple Chancery, Capitals, Charcoal, Chicago, Courier, Gadget, Geneva, Helvetica, Hoefler Text, Monaco, New York, Palatino, Sand, Skia, Symbol, Techno, Textile, and Times.

In all of the fonts listed above, except Symbol, the character has been added at Option-Shift-2 (MacRoman Encoding decimal 219, hex 0xDB), replacing the international currency symbol.

International Currency

The international currency symbol

For Symbol, the glyph has been added at Option-t (MacRoman Encoding decimal 160, hex 0xA0, previously unused). The glyph has not been stylized in any of Apple's fonts, i.e., it does not take on the font and style characteristics of the font in which it resides. Apple may stylize this glyph with a future release of the Mac OS, although at this time, Apple is not planning to release the Apple fonts mentioned above outside of the Mac OS 8.5 release. Third parties, however, do have fonts that contain this Euro glyph if you are not running Mac OS 8.5.


LaserWriter 8

LaserWriter 8.6

The changes to the LaserWriter 8.6 driver for supporting the Euro character apply only to Mac-encoded fonts. A font is considered a Mac-encoded font if the host-based version of the font is marked as a font that requires Mac Encoding (Bit-1 of the font's font classification word is set). The following description only applies to fonts which are marked as Mac-encoded fonts.

The LaserWriter driver is responsible for reencoding fonts marked as Mac-encoded fonts so that their encoding corresponds to the Apple-defined MacEncoding vector. Prior to LaserWriter 8.6, the MacEncoding vector contained the name "/currency" at the code point corresponding to Option-Shift-2. When imaging the character at the Option-Shift-2 code point in Mac-encoded fonts, drivers prior to LaserWriter 8.6 imaged the character named "/currency" (which corresponds to the international currency symbol).

With the introduction of Mac OS 8.5 and LaserWriter 8.6, Apple is redefining this code point in the MacEncoding vector to instead correspond to the Euro character. Therefore, the MacEncoding vector supplied by LaserWriter 8.6 contains the name "/Euro" at the code point corresponding to Option-Shift-2. While Apple is supplying screen fonts which contain the Euro glyph at this code point, a large number of printer-resident fonts do not contain the Euro glyph at all. In order to support the Euro glyph whenever LaserWriter 8.6 encounters the Option-Shift-2 character from a Mac-encoded font, it images the Euro glyph (named "/Euro") from the Symbol font. If the Symbol font does not contain a character named "/Euro", then LaserWriter 8.6 adds it to the existing printer Symbol font prior to any imaging.

This LaserWriter 8.6 behavior is implemented for all Mac-encoded fonts, regardless of what glyph is actually present at that code point in the screen font on the host. Even if the international currency symbol appears on screen, if the font is a Mac-encoded font, the LaserWriter 8.6 driver will image a Euro character on the printed page. The LaserWriter 8.6 driver does not detect which glyph is present in the screen fonts; it simply treats the Option-Shift-2 code point of Mac-encoded fonts as the Euro code point.

The behavior for older LaserWriter 8 drivers depends upon the driver and possibly the version of the PrintingLib file.

LaserWriter 8.4.x through 8.5.1

The LaserWriter 8.4.x and 8.5.1 versions of the driver use a number of shared libraries contained in the PrintingLib file. If the version of PrintingLib is any version prior to 8.6, these drivers will continue to print as they have in the past; that is, imaging of the character at the Option-Shift-2 code point in Mac-encoded fonts will image the character named "/currency" (which corresponds to the international currency symbol) in the font on the printer. This occurs regardless of what character appears on screen for that code point in that font.

These drivers' behavior will be different if they are used with PrintingLib 8.6. Since PrintingLib 8.6 uses a MacEncoding vector which contains "/Euro" at this encoding point, and since the older drivers do not image the Euro from the Symbol font, imaging of the character at the Option-Shift-2 code point in Mac-encoded fonts will image the character named "/Euro" in that font on the printer. If the font does not contain a character named "/Euro", then the "/.notdef" character will image instead. This is typically a space or an empty box, as designed by the font designer. This result occurs regardless of what character appears on screen for the Option-Shift-2 code point for that font.

LaserWriter 8.3.x and earlier

These drivers do not use the PrintingLib file and always use a MacEncoding vector which contains the name "/currency" at the code point corresponding to Option-Shift-2. That is, imaging of the character at the Option-Shift-2 code point in Mac-encoded fonts will image the character named "/currency" (which corresponds to the international currency symbol) in the font on the printer. This occurs regardless of what character appears on screen for that code point in that font.

Other Printer Drivers


All raster printer drivers should not have problems printing the Euro character, inside or outside of Mac OS 8.5. Apple's Color StyleWriter series are able to print this glyph without problems.


Third-party PostScript printer drivers may or may not be able to handle printing the Euro glyph contained in our new fonts. If you are having problems printing with a third-party printer driver, please contact the printer driver developer for more information, or try using LaserWriter 8.6 with your PostScript device to get the proper output.

Third-party Font Developers

So what should you do with your font to support the Euro so that it shows up on the screen and prints? This depends on whether you are making a PostScript or a TrueType font. PostScript fonts contain only one resource to be altered: the FOND resource. TrueType fonts contain two resources to be altered: the FOND and the 'sfnt'.

The FOND Resource

FOND changes to be made

There are three things to be checked and edited as necessary in the FOND: Bit-1, Bit-9, and the Glyph reencoding Table.

The FOND contains several boolean bit fields, including the font classification word, that form the top portion of the Style Mapping Table in your font. There are two specific bits in the font classification word, Bit-1 and Bit-9, which provide the printer driver with information about the encoding of characters within a font. For detailed information on the Style Mapping Table and these bit settings, please see Inside Macintosh: Text, p. 4-99.

"Encoding", "Encoding Vector", and "Natural Encoding":

An "encoding" refers to an arrangement of glyphs within an ordered list of byte codes. An "encoding vector" is a two-column table that associates glyphs with byte codes. An 8-bit encoding vector contains 256 entries. The encoding vector enables byte codes in the print stream to be interpreted in terms of glyph names. e.g.,: byte code decimal 219 is associated with the glyph name "Euro".

The "natural encoding" of a font is the encoding vector with which it was originally built. This concept pertains to PostScript fonts as they cannot be built without an original (i.e., natural) encoding vector, whereas a TrueType font has a structure that permits multiple cmaps from the beginning - none of which are more "natural" than another.

When a TrueType font is converted to PostScript, the encoding vector is generated from the currently selected cmap. When a PostScript font is printed, the driver can either use the "natural" encoding within the font, or impose the Macintosh Standard encoding over the font by reencoding it. Bit-1 and Bit-9 control these encoding choices in the following ways:


Bit-1 activates Symbol font substitution by the LaserWriter 8 driver as described in the "Printing" section of this document. It causes the printer to print certain byte codes using glyphs from the Symbol font instead of the glyphs from the source font. The 16 byte codes which are subject to the Bit-1 Symbol substitution mechanism are:


post Name Mac Encoding

































Euro small



Apple symbol



If you see the international currency symbol printing in the list above, it means you are using an old system and/or old printer driver.

This means that if you have glyphs at any of the code points listed above which you want printed with the glyphs defined in your own source font, you must turn Bit-1 off. This will deactivate substitution of ALL the above listed glyphs.

Consequently, with Bit-1 off, it is then your responsibility to ensure that the glyphs in your font correspond to the encoding you intend. If Mac Standard Encoding is intended, you must have all of the above Symbol glyphs present in your font in their correct positions - including the Euro, of course.

Bit-1 set to on in combination with Bit-9 set to off also marks the encoding as "Macintosh Standard Encoding". In this case, the printer driver generates the Macintosh Standard Encoding vector for the font.


Bit-9 makes the driver read a custom encoding table in the FOND. The entries in this table then update the natural character encoding of the font.

Note that setting Bit-9 affects the interpretation of Bit-1 because it deactivates Macintosh Standard Encoding as described above.

The natural encoding of a font is the one it was generated with. This will typically also be Macintosh Standard Encoding if it was generated for the Macintosh with a normal development tool like Fontographer. Please note, however, that it may not be - the natural encoding could be the Adobe Standard Encoding or it could be any other made by specialist tools or developers.

Care should therefore be taken to establish what the natural encoding is when working with Bit-1 off (i.e., Non-Macintosh Standard Encoding).

If Bit-9 is set there should also be a glyph reencoding vector ("glyph-name encoding subtable") present in the FOND containing the overriding encoding values.

Bit-9 normally indicates that the font does not use the default MacEncoding vector. However, in the cases where you want the MacEncoding vector but wish to image the 16 Symbol substitution glyphs with glyphs from your own font, then Bit-1 would be off, Bit-9 would be set, and the reencoding vector would contain the full Standard MacEncoding. If you know your natural encoding exactly, the reencoding vector would contain only the changes necessary to make it MacStandard.

Glyph reencoding vector

Within DumpFOND text files, the glyph reencoding vector table is labeled the "GLYPH REENCODING TABLE". Within Inside Macintosh, it is called the "glyph-name encoding subtable". The format and location of the glyph-name encoding subtable in the FOND is described in Inside Macintosh-Text, p. 4-105 through 4-106.

Always declare the Euro in your fonts

Because the Macintosh Standard Encoding now has two variations - the old Generic Currency symbol variant and the new Euro variant - a new method other than the encoding name is needed to resolve the variants. This information is necessary for programmers who need to map data in the font to another encoding, such as Unicode, or to another platform. Binary identical cross-platform data formats are an example.

Apple recommends that a reencoding vector containing the "Euro" be added to the FOND resource for all fonts that contain the Euro, even if it is not used (i.e., Bit-9 is not set). The reason is that this is the most universally available place that applications and system programmers can look to find out if the font contains a glyph for the Euro or the older International Currency Symbol. TrueType fonts declare the "Euro" in the post table, but PostScript fonts and NFNTs have no such structure. The FOND is the only resource common to all these types of font.

Note that as discussed in the earlier section describing LaserWriter 8 printing, LaserWriter 8.6 does not detect the Euro in the font. For fonts marked as MacEncoded Fonts, the LaserWriter driver 8.6 always treats the code position decimal 219 as the Euro character. The declaration being recommended here is purely for other applications.

Summary of Bit Settings






Download the font exactly as it exists using the natural encoding.



Replace the encoding vector with Mac Standard encoding including the Euro. Also switch to Symbol.



Take delta vector supplied and apply as an update to the natural encoding. No switch to Symbol. (Typically used for dingbat and "pi" fonts such as Carta, Symbol, Zapf Dingbats and Adobe Expert sets.)



Take delta vector supplied and apply as an update to the natural encoding. Switch to Symbol. Do not apply Macintosh Standard encoding. (Typically used with Macintosh Roman variant encodings).

How to add the FOND reencoding vector

To work on the FOND resource, you should consider using DumpFOND and FuseFOND. These are free font tools available from Apple at


Steps to add the FOND reencoding vector:

(1) Run DumpFOND to create a text file of the FOND of your font. A complete sample FOND text source of the Geneva font (with all of the tables filled in) accompanies this document. An excerpt is included below to show the Style Mapping Table and the Glyph Reencoding Table (or "vector").




Font name needs coordinating: true
Font requires Mac vector reencoding: true
Font is outlinable by setting PaintType 2: true
No smear and whiteout outlining simulation: false
No smear bolding simulation: false
Simulate bold by increasing pointsize: false
No obliquing for italic simulation: false
No simulation of condensed style: false
No simulation of expanded style: false
Font requires non-Mac reencoding: false
No additional interchar spacing other than space char: false
Reserved: 0
..... additional contents

......contents excerpt.....
Name for character code 0xD9: 'Ydieresis'
Name for character code 0xDA: 'fraction'
Name for character code 0xDB: 'Euro'
Name for character code 0xDC: 'guilsinglleft'
Name for character code 0xDD: 'guilsinglright'
Name for character code 0xDE: 'fi'
Name for character code 0xDF: 'fl'



(2) Most fonts in the marketplace today do not have a Glyph Reencoding Table. Therefore, it is likely that you will need to create one and add it to your font. If you have a Standard Mac Encoding font design, you can use the Geneva sample file included with this document. You can simply paste the text for the Glyph Reencoding Table from Geneva into your FOND text dump. If you prefer, you can also run DumpFOND on any of the new Mac OS 8.5 fonts, except Symbol, and use that table instead.

Note: The text for the reencoding table should be inserted within the FOND in the sequence shown - i.e., after the Style Mapping Table and before the Glyph Width Table.

If you would like another encoding arrangement, you will need to create or edit your own table. You should use the standard PostScript encoding ('post') names for each of your glyphs as published in Adobe's PostScript Language Reference Manual. Please note that 'post' names are case-sensitive.

(3) Use a text editor, such as SimpleText, to replace the name "currency" with "Euro" wherever it is found in the dumped FOND glyph reencoding table. Do not use a "replace all" function so you don't replace "currency" in other tables, such as the metrics table. Note that the "Euro" must be begin with an upper-case "E", as PostScript names are case-sensitive.

(4) Set Bit-1. For normal MacEncoded fonts, make sure that Bit-1 in the font classification word in the FOND is set to true, as shown below (see comments on Bit-1 and Bit-9 settings above).

Font requires Mac vector reencoding: true

(5) Setting of Bit-9. If your font design requires glyph reencoding table overrides to the standard encoding, make sure that Bit-9 in the font classification word in the FOND is set to true, as shown below (see comments on Bit-1 and Bit-9 settings above).

Font requires non-Mac reencoding: true

(6) Run FuseFOND to take the edited file and compile it back into the FOND resource of your font.

Scope of reencoding vectors

It is helpful to consider that there are three classes of reencoding vector: Full, Half, and Delta. The full vector contains 256 entries. The half vector contains 128 entries covering either the "low-byte" range (0-127) or the "high-byte" range (128-255). A delta reencoding vector contains only those characters that differ from the natural encoding. The smallest delta can be a single entry.

The sample Geneva reencoding vector contains a half vector for the high-byte range (i.e., it has 128 line entries which cover all glyphs in the high byte).

Apple recommends using a half vector for the high byte. There are three reasons for this:

(1) Within the Roman script, most reencoding issues do not affect the low-byte ASCII range.

(2) Creating a delta encoding requires that you know exactly what your natural encoding is. Knowing what the natural encoding is can be hard as it is not easily viewable and may also depend on fonts resident in your printer.

(3) The OS 8.1 release and later printer drivers support delta reencoding vectors of any size (i.e., 1-256 entries), but some earlier drivers may only work with half or full reencoding vectors.

Experiment with different scope reencoding vectors, depending on your design needs. A full or half vector has the benefit of explicit declaration, which avoids confusion and is less dependent on the exact behavior of a specific printer driver.

If you have a Euro in the font, at the very least include a single entry delta containing the "Euro". We recommend that you do this regardless of whether Bit-9 is on or off.


'sfnt' changes to be made

The 'sfnt' resource normally describes a TrueType outline font, though it can also contain Type 1 PostScript fonts. This discussion applies only to TrueType outline fonts in the 'sfnt'. The 'sfnt' contains a large number of tables that are necessary to draw and interpret the glyphs of a font. The two TrueType tables that need changing for Euro support are the 'cmap' table (Character Code Mapping Table) and the 'post' table (PostScript Encoding Names Table).

A 'cmap' associates character codes to glyph indices. A 'post' table associates glyph indices with PostScript encoding names. Within these tables individual glyphs are identified by a glyph index number, which is arbitrary and internal to the font (i.e. if you remove a glyph, the index numbers of glyphs following the deletion will change). Fonts can contain multiple 'cmap' resources, enabling them to be used on different platforms with varying encodings, or for various purposes on the same platform. The Mac OS platform supports a series of language script encodings (e.g., MacRoman, MacArabic, MacJapanese), as well as the Unicode encoding UTF-16.

TrueType fonts can contain a large glyph collection (up to 65,000) which is independent of any encoding. Moreover, TrueType supports multiple character encodings for a single font, and normal TrueType development tools allow you to work with each of these parts independently.

Apple recommends appending the Euro glyph to a TrueType font without removing the existing international currency symbol. This has two advantages:

(1) the glyph index of the Euro is the last glyph index value, and all other indexes and associated tables do not change.

(2) Unicode-savvy applications that use Apple Type Services for Unicode Imaging (ATSUI) will have access to both characters.

The specific 'sfnt' changes that must be made for Euro support are:

(1) The Euro glyph should be given the post name "Euro". (PostScript names are case-sensitive, so the "E" must be upper-case).

(2) The MacRoman 'cmap' should be edited to assign the "Euro" to the code point OxDB (decimal 219).

(3) The Unicode 'cmap' should then be edited to assign the "Euro" to the code point U+20AC.

How to change the post names and cmap To work on the 'sfnt' (TrueType) resource, you should consider using DumpPOST and AATFontTool. These are free Apple tools which you can download from


Your TrueType font is assumed in this discussion to be one of the Macintosh Roman encodings and to contain a 'cmap' and 'post' table.

To alter the post table, you must use a name list as input to the AAT Font Tool. This will override the existing value and automatically update the cmap. You achieve this by doing the following steps:

(1) Run DumpPOST to produce a text file of all the 'post' names in the font. This shows the postname and its associated glyph index value. With TrueType fonts you can add glyphs to the font which are not encoded. This means you can either append the Euro glyph or you can paste it over the currency glyph. We recommend the former (appending) so that the currency glyph can then still be accessed by ATSUI users or via a switched 'cmap'.

In the sample below, you can see the currency symbol has been left in, and the Euro added as a separate TrueType glyph with its internal glyph index incremented at the end of the collection.

Ydieresis /* 187 */
fraction /* 188 */
currency /* 189 */
guilsinglleft /* 190 */
guilsinglright /* 191 */
Dcroat /* 379 */
commaaccent /* 380 */
Euro /* 381 */

(2) Save the postnames file and run AAT Font Tool. Go to the options menu (which you will find all checked initially). Uncheck all except the first three options (shown in screen shot below):

AAT Font options

(3) Select "Use Name List..." from the File menu and select the postnames file. Then select "Open and process..." from the File menu and select your font. The AAT Font Tool will then update the 'post' table and 'cmap' table accordingly.

You can confirm that the changes have been made to your font by opening your font in TrueEdit (a free tool available on the web site). Open the 'post' table in TrueEdit and confirm by inspection that the "Euro" entry is present as intended.

About the AAT Font Tool

Running the AAT Font Tool can also do a few other smart things to your fonts if you leave the other options checked. Here is an short outline of how it works: The AAT Font Tool tool does not rely on "standard glyph ordering". It analyzes the glyph repertoire based primarily on the 'post' table, which is to say, the actual names. It looks at the existing 'cmap' tables for 2-byte fonts, and for any one-byte fonts which don't have names in the 'post' table (i.e., the 'post' table is format 3).

It adds all the 'cmap' tables which represent scripts and/or languages which are present to significant degree. Thus, if a font only has a Hebrew alef but not the other letters, it won't add a Hebrew 'cmap'; if all the letters are present, then it will.

It adds all the Roman variants for script 0 fonts. It has been successfully used on third-party fonts whose glyph layouts are significantly different from Apple's.

Full details are in the AAT Font Tool's documentation on Apple's font web site, including descriptions of the many other powerful GX and AAT features you can add to your fonts at the same time while adding the Euro glyph.

The Benefit

Apple's system fonts have been updated as described above. Third-party fonts that follow these recommendations will inherit the same semantic and character handling properties in the system and the same keyboard mappings, which is important for consistent user interface.

Adding a Euro glyph to a TrueType font with RoyalT

For those who have TrueType fonts that contain a large investment in hinting, it is undesirable to lose those hints and revert back to a PostScript source just to get one new Euro glyph added. Here is a step-by-step instruction on how to use the RoyalT font tool to add a Euro glyph to the TrueType font file:

RoyalT is a very specialized tool for TrueType fonts. It is no longer supported by Apple, nor is it fully stable. The following steps are therefore more than a work guide - they are a "straight and narrow" path that you need to follow to get useful work out of the tool without too much trouble. Please ensure that you back up and read up on RoyalT installation and use before running. Though nearing the end of its life, RoyalT is on the web site because it is still the only free tool that can do certain valuable and advanced things with Apple TrueType fonts - this operation included. Again, there is no support for this tool from Apple.

This sequence of instructions copies a standard Euro glyph from one font and pastes it over a glyph in the target font. The CVT and hint instructions for the glyph are then updated manually. Entry numbers refer to points in the Euro glyph outline. These numbers will differ from the particular glyph you will be using. You will have to identify which points hints reference in your own outlines:

(1) Launch RoyalT PPC 3.2d4
(2) Open your Euro glyph source font
(3) Command-H and go to the glyph index number of the Euro
(4) Open your Target font
(5) Command-H and go to the target glyph location. e.g., 189, the approximate/usual index number of the international currency symbol in standard Macintosh fonts.
(6) Click on the main window of the source font, then command-C to copy the glyph already selected (source font can be closed after this).
(7) Click on the main window of the target font, then command-V to paste to the glyph already selected.
(8) Open Views: CVT from pull-down menu.
(9) Scroll to end of list and highlight the last entry.
(10) Command-D to append to the end of the list.
(11) Add entry value 130. Note the entry line number on paper and mark it as entry "A".
(12) Scroll to the end of the list again and highlight the last entry.
(13) Command-D to append to the end of the list.
(14) Add entry value 48. Note the entry line number on paper and mark it as entry "B".
(15) Open Views: Instructions window from the pull-down menu.
(16) At every occurrence of the number 227 (8 occurrences for this Euro outline), change it to the value of "A" from step (11) above. In this example these are instruction lines 3, 19, 23, 25, 28, 29, 30.
(17) At every occurrence of the number 228 (5 occurrences for this Euro outline), change it to the value of "B" from step (14) above. In this example these are instruction lines 6, 11,14, 15, 16.
(18) Command-R to recalculate
(19) Open Views:Info window from the pull-down menu.
(20) Change the LSB value to 100, unless the font is monospaced; in this case, change the LSB to match the RSB (rough guide only).
(21) Command-R to recalculate
(22) Click on main window of target font & Save.
(23) Run ResEdit and remove 'PREC' and 'STR ' resources that were automatically added by RoyalT.
(24) Update the 'post' table to contain the postname of the glyph you have added at the appropriate index value.

Back to top

Mac OS X Server Support

The Mac OS X Server team is currently working on adding support for the Euro character. Please watch the Mac OS X Server web site for further information.

Back to top


As you can see, there is plenty of good information on the Euro out there. We hope this gives you a good sense of the support that Apple has added to its OS releases, and gives you an idea of what you need to do with your fonts.

Back to top


Apple information:

Inside Macintosh: Text

Apple's Font web site

Mac OS X Server web site

The official European Union Euro pages:

Central EU Euro page

EU Euro page in English

Unicode Consortium Euro information


Adobe Information:

Adobe Euro Fonts

Adobe PostScript Language Reference Manual

Microsoft's Euro pages:

Microsoft Euro description

Microsoft Typography

General Euro Info sites:

IT Impact of the Euro

Euro Symbol

Back to top



Acrobat version of this Note (192K).


Bluebook gif

Geneva dump (23K).


Back to top