Producing Archaic English Letters with Unicode

GNU Unifont
Unicode Tutorial
Hangul Fonts
Japanese Fonts
Retro Fonts
Fontforge Poll
Checking .sigs

For Auld Lang Syne

The olden program reads a plain ASCII English text file and outputs a UTF-8 file with letters converted into the following upper- and lower-case forms from olden times, according to these options:

Letters Upper and Lower
Case Forms
Command Line Options
ash Æ, æ +ae, +ash-ae, -ash
ethel Œ, œ +oe, +ethel-oe, -ethel
yogh Ȝ, ȝ +gh, +yogh-gh, -yogh
insular gꝽ, ᵹ +g -g
long s ſ +s-s
thorn Þ, þ +thorn, +th-thorn, -th
eth Ð, ð +eth, +th-eth, -th
wynn Ƿ, ƿ +w, +wynn-w, -wynn
insular Ꝺ, ꝺ, Ꝼ, ꝼ, Ᵹ, ᵹ, Ꞃ, ꞃ, Ꞅ, ꞅ, Ꞇ, ꞇ +insular-insular
all all of the above +all-all

The long 's' replacement is only performed for an initial or medial lowercase 's'; final 's' retains its original form. For all other letter replacements, position in a word does not matter.

The default setting is for all letter conversions (the "+all" option). This can be disabled selectively by specifying '-' options; for example, "-wynn" will keep all options enabled except converting 'w' to wynn. All options can be disabled with the "-all" option, after which selective options can appear; for example, "-all +s" will only convert initial and medial 's' into the long s form, with none of the other conversions.

This program could be useful for pedagogical purposes, or used for just plain fun.

More information is available in the man page:

The source tarball and GnuPG signature file can be downloaded at these links:


The olden package contains an examples directory with text input files and generated UTF-8 output files. The test directory contains scripts that should generate identical UTF-8 output files on any target computer. The documents described below are a sample of more complete examples in the source distribution.

Poor Richard's Almanack

In the 18th century, initial and medial "s" retained an earlier form that resembled the letter "f". Benjamin Franklin published his Poor Richard's Almanack during this period.

The options "-all +s" (to only perform changes to initial and medial "s", leaving other letters as is) turn this old witticism from Poor Richard's Almanack:

Observe old Vellum;
he praises former times,
as if he'd a mind to sell 'em.

into this:

Obſerve old Vellum;
he praiſes former times,
as if he'd a mind to ſell 'em.

The result resembles what appeared in the original Almanack.

Geoffrey Chaucer's Prologue

In Chaucer's day, the 14th century, the characters eth, thorn, and wynn were in common use, along with early forms of other letters, such as "g". However, older insular letter forms had fallen into disuse.

Below are the first six lines of Chaucer's Prologue1:

Whan that Aprille with his schowres swoote
The drought of Marche hath perced to the roote
And bathud euery veyne in swich licour
Of which vertue engendred is the flour
whan Zephirus eek with his swete breeth
Enspirud hath in euery holte and heeth

This is the output with the option "-insular" (to perform all letter modifications except for conversions of some letters to their earlier insular forms):

Ƿhan ðat Aprille ƿiþ his ſchoƿres ſƿoote
Ðe drouȝt of Marche haþ perced to ðe roote
And baðud euery veyne in ſƿich licour
Of ƿhich vertue enᵹendred is ðe flour
ƿhan Zephirus eek ƿiþ his ſƿete breeþ
Enſpirud haþ in euery holte and heeþ

Ye Olde…

There is also a special test for the well-worn "Ye Old". With the options "-all +th" (to only perform changes related to eth and thorn), this:

Ye Olde Computer Shoppe

becomes this:

Ðe Olde Computer Shoppe

Should any question arise as to the antiquity of one's computer shoppe, use of "Ðe" rather than "Ye" ought to erase all doubt.


Beowulf is an epic poem thought to have originated circa the year 700. The sole surviving manuscript was written three hundred years later.

Anglo-Saxon scribes frequently used eth and thorn interchangeably.2 As a result, there are several words in the single surviving copy of Beowulf that have multiple spellings with eth and thorn. It is generally agreed that Beowulf also contains over 300 scribal errors, from a combination of being composed approximately 300 years earlier than the surviving manuscript and from the original Anglian being copied (and frequently misunderstood) by West Saxon scribes.

Other transcription errors were the result of misreading some insular letters. For example, Neidorf discusses how hord ("hoard") was mistakenly written for hond ("hand").3 The ease with which this mistake could be made becomes even clearer when one considers the insular form of "r": "hoꞃꝺ" versus "honꝺ". olden can perform such a conversion for illustration purposes on a single input line, ending the program by typing the Control-D character on a line by itself. The example below demonstrates this, with user input in boldface:

          $ olden

The generated character sequence "hoꞃꝺ" can then be copied and pasted into a document.

Given inconsistent spellings of words containing eth and thorn, the file beowulf.txt in the examples directory explicitly encodes each eth as "\dh{}" and each thorn as "\th{}", using escape sequence names borrowed from TeX/LaTeX. The beginning text of the original manuscript also contains one instance of a word ending in "u" with a macron, which is encoded as "\={u}", as in TeX/LaTeX. This was a common ending among Latin scribes to designate a word ending in "-um". There are also two instances of "\thaet{}" for the common Old English abbreviation of a thorn with a horizontal stroke, which signifies "þæt", meaning "the", "that", or "that one".

Using the default options to olden (which enable all conversions including insular letter forms), this:

Hwaet. We Gardena in gear dagum
\th{}eod cyninga \th{}rym gefrunon
hu\dh{}a ae\th{}elingas ellen fremedon.
Oft Scyld Scefing scea\th{}ena \th{}reatum
moneg\={u} maeg\th{}um meodo setla ofteah
egsode eorl Sy\dh{}\dh{}an aerest wear\dh{}
feasceaft funden he \th{}aes frofre gebad
weox under wolcnum weor\dh{}myndum \th{}ah
o\dh{}\thaet{} him aeghwylc \th{}ara ymb sittendra
ofer hron rade hyran scolde
gomban gyldan \thaet{} waes god cyning.

becomes this (compare with the original manuscript on the right4):

Hƿæꞇ. Ƿe Ᵹaꞃꝺena in ᵹeaꞃ ꝺaᵹum
þeoꝺ cyninᵹa þꞃym ᵹeꝼꞃunon
huða æþelinᵹaꞅ ellen ꝼꞃemeꝺon.
Oꝼꞇ Ꞅcylꝺ Ꞅceꝼinᵹ ꞅceaþena þꞃeaꞇum
moneᵹū mæᵹþum meoꝺo ꞅeꞇla oꝼꞇeah
eᵹꞅoꝺe eoꞃl Ꞅyððan æꞃeꞅꞇ ƿeaꞃð
ꝼeaꞅceaꝼꞇ ꝼunꝺen he þæꞅ ꝼꞃoꝼꞃe ᵹebaꝺ
ƿeox unꝺeꞃ ƿolcnum ƿeoꞃðmynꝺum þah
oðꝥ him æȝƿylc þaꞃa ymb ꞅiꞇꞇenꝺꞃa
oꝼeꞃ hꞃon ꞃaꝺe hyꞃan ꞅcolꝺe
ᵹomban ᵹylꝺan ꝥ ƿæꞅ ᵹoꝺ cyninᵹ.
Beowulf Introduction

Installing olden

To install the olden package on a system with a Unix-style command line interface (GNU/Linux, BSD, Mac OS X, Cygwin, etc.), type these commands in a terminal window:

     make check
     make install
     make clean

The "make check" command will run test scripts in the "tests" directory, using sample text files that are in the "examples" directory.

The "make install" command might need to be run as "sudo make install" on your system. By default, the olden program will be installed in "/usr/local/bin" and the man (manual) page will be installed in "/usr/local/share/man/man1".


The software on this site, unless otherwise noted, is released under the terms of the GNU General Public License (GNU GPL) version 2.0, or (at your option) a later version.


1Chaucer, Geoffrey. The Harleian MS 7334 of Chaucer's Canterbury Tales. Edited by Frederick J. Furnivall. London: Publisht for The Chaucer Society by N. Trübner & Co., 57 & 59, Ludgate Hill. 1st edition, 1885.

2Neidorf, Leonard. The Transmission of Beowulf: Language, Culture, and Scribal Behavior. Cornell University Press: 2017. Introduction, note 34.

3Ibid, Introduction, §18.


Valid HTML 4.01 Transitional Valid CSS! Best Viewed with Any Browser