diff --git a/config.ini b/config.ini
index 46735eb0f11120179a48c40187b0ed12df58d251..f394d9d143d62af100a1175ff7bb4e1e3476bf6c 100644
--- a/config.ini
+++ b/config.ini
@@ -90,11 +90,26 @@ ignore = toc 1, toc 2, toc 3, toc 4, toc 5, toc 6, toc 7, toc 8, toc 9
 ; The characters to be replaced and the characters that make the
 ; replacement string must be specified as hex values
 ; To remove a character from the file set it to 00 (2 zeros)
+;
+; The following are some common characters that can be replaced as well.
+
+; Registered trademark (®) — (`®`)
+; Trademark (™) — (`™`)
+; Euro (€) — (`€`)
+; Left arrow (←) — (`←`)
+; Up arrow (↑) — (`↑`)
+; Right arrow (→) — (`→`)
+; Down arrow (↓) — (`↓`)
+; Degree (°) — (`°`)
+; Pi (π) — (`π`)
+
 
 ; "(c)"
-a9 = 286329
+; a9 = 286329
+a9 = ©
 ; "(R)"
-ae = 285229
+; ae = 285229
+ae = ®
 ; space
 a0 = 20
 ; double quote
diff --git a/spec2md.py b/spec2md.py
index 1c26aa512d8fdb352742e6a46fb6c997b69a896e..e12a9644c462bf526ba5da108adf8507db22ec3d 100644
--- a/spec2md.py
+++ b/spec2md.py
@@ -192,8 +192,16 @@ class DocumentConfiguration(object):
 		self.generateToc = config.getboolean('toc', 'generateToc', fallback = False)
 
 		# characters
-		self.characters = { int(c, 16) : binascii.unhexlify(config.get('characters', c)).decode('utf-8')	# type: ignore [attr-defined]
-							for c in config['characters'] }
+		# self.characters = { int(c, 16) : binascii.unhexlify(config.get('characters', c)).decode('utf-8')	# type: ignore [attr-defined]
+		# 					for c in config['characters'] }
+		self.characters = {}
+		for c,v in config['characters'].items():
+			if v.startswith('&'):
+				# HTML entity
+				self.characters[int(c, 16)] = v
+			else:
+				# Unicode character
+				self.characters[int(c, 16)] = binascii.unhexlify(config.get('characters', c)).decode('utf-8')	# type: ignore [attr-defined]
 
 		# Media & Converter
 		self.emfConverterPng = config.get('media', 'emfConverterPng', fallback = None)