Page 1 of 1

Font with some Emoji in a high plane Private Use Area

Posted: Fri Jan 02, 2009 10:41 am
by William
In the Support forum is the following thread.


As a result of that thread there is a small font HIGHM003.TTF which has glyphs for the following emoji.


This thread is so that the font is mentioned in the Gallery in case the font might be of use to some readers.

William Overington

2 January 2009

Re: Font with some Emoji in a high plane Private Use Area

Posted: Fri Jan 02, 2009 1:21 pm
by William
An interesting aspect of the font is the way that WordPad stores the characters in a Unicode Text Document.

The file 12345rainbow.txt was produced using WordPad on a PC running Windows xp professional, using Save As... with the file type as Unicode Text Document.
(16 Bytes) Downloaded 488 times
12345rainbow.png (11.76 KiB) Viewed 8941 times
The text which I keyed is the five digits 1 through to 5 followed by U+FE00D RAINBOW, which was entered using Alt 1040397 in WordPad.

This is a total of six Unicode characters.

Sixteen bytes are used in the 12345rainbow.txt file.

Expressed as pairs of bytes, these bytes are as follows, in hexadecimal notation.

FFFE 3100 3200 3300 3400 3500 B8DB 0DDC

WordPad stores Unicode Text Documents in a UTF-16 format with the byte order explicitly indicated as low order byte before high order byte.

The first pair of bytes indicates that byte order. The first pair of bytes, according to the rules of Unicode, cannot represent U+FFFE as that is a forbidden character, so instead it is U+FEFF, which indicates that the bytes of each pair of bytes need to be counterchanged so as to produce Unicode characters.

(Note, text files can be expressed in various ways, the U+FEFF can optionally be used to distinguish between two ways of expressing text in UTF-16 format.)


The U+FEFF is not part of the text, its purpose is to indicate the byte order of the way that the characters are stored in the file. The next five characters are the digits 1 through to 5. That leaves two characters, U+DBB8 and U+DC0D and those two characters together represent the U+FE00D character.

The conversion is as follows. Use the ten least significant bits of U+DBB8 in front of the ten least significant bits of U+DC0D to form a 20 bit value, then add hexadecimal 10000 in order to produce the code point. Hexadecimal 10000 is decimal 65536 and in binary is one followed by sixteen zeros.

So with U+DBB8 we get the ten binary bits 11 1011 1000 (the spaces are just used here so that this text is easier for people to read) and with U+DC0D we get the ten binary digits 00 0000 1101.

Joining the two ten bit sequences we get 11 1011 1000 00 0000 1101 but I will change the spacing for ease of legibility.

1110 1110 0000 0000 1101

The one followed by 16 zeros can be expressed as a 20 bit number by adding 3 zeros at the front.

0001 0000 0000 0000 0000

I have added the leading zeros because otherwise this web page might display with the addition shown below not aligned correctly on the page.

Adding the two numbers together.

1110 1110 0000 0000 1101
0001 0000 0000 0000 0000

1111 1110 0000 0000 1101

Expressing that number in hexadecimal gives FE00D thus meaning that U+FE00D is the character which is represented.

William Overington

2 January 2009

Re: Font with some Emoji in a high plane Private Use Area

Posted: Sat Jan 03, 2009 9:48 am
by William
I noticed that one of the emoji is ROASTED SWEET POTATO and I wondered if I could make a good glyph design by recycling some heat lines which I used in my Hot Beverage font, which was made using the Softy program back in 2003.

The Hot Beverage font was my first published font. It is still available on the web at the following web page.

Here is a transcript of the notes which I made, using WordPad, while I was making the High Plane Mapping 004 font.


Saturday 3 January 2009

08:51 am

Save a copy of HIGHM003.TTF in HIGHM004.TTF.

Use Tools AutoNaming... to change the name to High Plane Mapping 004.

Try to add another glyph to the font in plane 15. ... apshot/utc


Insert a cell after the rainbow glyph as U+FE974 is after U+FE00D.

The decimal equivalent of the hexadecimal U+FE974 is 1042804.

Map the cell, using the Microsoft Unicode full repertoire platform to be U+FE974.

Format Post... Generate Names OK.

Set the advance width to 1792 font units.

Open the Hot Beverage font.

Copy the heat lines from the glyph.

Move the heat lines down by 256 font units.

Move the right heat line to the right by 128 font units.

Move the lowest point of each heat line up by one font unit.

Draw a shape to represent a sweet potato.

Validate the font.

Install the font.

Try the font in WordPad on this PC which has Windows xp professional.

Key the following.


It works well.

Try Alt 1042804 to observe what happens.

It works well.

09:17 am.

(15.05 KiB) Downloaded 505 times
William Overington

3 January 2009

Re: Font with some Emoji in a high plane Private Use Area

Posted: Mon Jan 05, 2009 11:51 am
by William
I read with interest a post which is in the Unicode mailing list archive. ... /0024.html

When I saw the post I decided to try to make a font which could be used to support experiments using the suggestion in that post.

Please find attached a font which includes glyphs for all of the Unicode Tags and a glyph at U+FFFF2 intended to serve as PRIVATE USE AREA TAG in experiments. A regular Unicode version could be U+E0002 or something similar, yet U+FFFF2 PRIVATE USE AREA TAG can be used for experiments now.

The Alt code for U+FFFF2 is Alt 1048562.

The font also contains the following glyphs for emoji.


The only facility which I have, as far as I know, which will handle the code points from higher Unicode planes is WordPad, yet I have managed to get some interesting results using WordPad with Alt codes and saving as Unicode Text Document.

The font was produced by adding the capability to handle non-BMP code points and the extra glyphs to a copy of my Poetry font.

Here is a transcript of the notes which I made while I made the font.


Monday 5 January 2009

Open POETRY.TTF Poetry version 0.241.

Save as TAGEM001.TTF Tags and Emoji 001.

Change the .notdef glyph to a copy of the one in the Quest text font.

From the web page, obtain a copy of the Tags code chart.

Follow the instructions which are in the "How to add characters defined in the Supplementary Planes..." thread to which Erwin referred me.

Add the Microsoft UCS-4 platform through the Platform Manager (Format -> Platform Manager) by selecting Microsoft Unicode Full-repertoire choosing the option button Copy from Microsoft Unicode BMP only and OK.

Now update the range settings on the Ranges page on the Font Settings window (Format -> Settings). Here set the Contents and Layout version to 3. then select the 'Edit' button within the Unicode Character Ranges area. Check 'Non-Plane 0 - implies that...' and press the 'OK' button.

Change scrren display resolution to 1024 by 768.

Insert charcter U+E0001.

Insert characters U+E0020 to U+E007F.

Insert characters $FE008, $FE00D, $FE974.



Alter the background for NIGHT WITH STARS to make it go up to 2048 font units.
Put the screen resolution back to 800 by 600.

Add glyphs for the tags, by copying the glyphs for the ascii characters and adding a tag marker.

Try a glyph for U+E007F CANCEL TAG by adapting a copy of the glyph for b.

Design a glyph for U+E0001 LANGUAGE TAG.

Validate the font.

Try to find a Private Use Area codepoint at or down from U+FFFF2 which ends in 2 and which has an Alt code which also ends in 2.

In fact U+FFFF2 is fine as it has an Alt code of 1048562.

Add a glyph for U+FFFF2.

Design a glyph to represent U+FFFF2 PRIVATE USE AREA TAG by adapting a copy of the glyph for U+E0001.

Calculate the Unicode Character Ranges (but do not alter the Code Page Character Ranges as some then drop out).


10:28 am

Install the font.

Test using WordPad.


Alt 1040392

Alt 1040397

Alt 1042804

Alt 1048562

Alt 917505 which is U+E0001.

Alt 917569 which is U+E0041 which is TAG LATIN CAPITAL LETTER A.

Alt 917631 which is U+E007F which is CANCEL TAG

There is information about tags in the following document.


I hope that the attached font will useful in any experiments on the topic which people choose to carry out.

Some readers may not be aware that Tags have been deprecated by the Unicode Consortium, though they are still in the specification. I mention the deprecation so that readers know of that situation.
(72.46 KiB) Downloaded 486 times
William Overington

5 January 2009

Re: Font with some Emoji in a high plane Private Use Area

Posted: Tue Dec 14, 2010 8:28 am
by William
Some readers might find the following post of interest.


It is a post in the "Pantone Colour of the Year for 2011 and fonts" thread and is about producing a graphic of the ROASTED SWEET POTATO glyph using the Pantone Colour of the Year for 2011.

In the event, in the circumstances of the facilities available to me, a special font based on the HIGHM004.TTF font was needed.

William Overington

14 December 2010

Re: Font with some Emoji in a high plane Private Use Area

Posted: Thu Dec 16, 2010 4:29 pm
by William
I decided to add the new Unicode 6.0 mappings to the three emoji glyphs that have been used in these experiments.

The name of this thread is "Font with some Emoji in a high plane Private Use Area" yet I mention, for the avoidance of doubt by anyone who is learning and reading this thread, that the Unicode 6.0 mappings are not in a Private Use Area at all, so to that extent this post is off-topic in this thread.

Yet it did seem that, as the Unicode 6.0 mappings of the glyphs are now formally encoded and published, that it would be good to add the Unicode 6.0 mappings. Also, this is the first font where I have added glyphs mapped to plane 1 into a font, so there is a learning experience for me as well. Also, a font with regular mappings for three of the emoji might be a useful font for some people to have in their toolkits for testing software packages.

Here is some transcript.


Thursday 16 December 2010

3:32 pm

Open HIGHM004.TTF in FontCreator 5.6.

Save as HIGHM005.TTF High Plane Mapping 005.

Add three new cells, before the three emoji glyphs, and copy the three emoji glyphs into the new cells and map them.

The mapping data is obtained from the following document.


Add Postscript names.

Also, change the width of the space and the width of the nonmarkingreturn from 508 font units to 512 font units as 512 is a power of 2.

Save the font.

Validate the font.

For information, the Alt codes, for trying out the font using Microsoft WordPad, are as follows.

Alt 127752 RAINBOW

Test the font.

4:05 pm


Here is the font.
(15.36 KiB) Downloaded 400 times
William Overington

16 December 2010