diff --git a/unicode.py b/unicode.py
index 9c216846d193b49295db7d8f7ba62eee75a7fd96..2c04d34f777fb5391e7a1002716b975dc3c2ddf2 100644
--- a/unicode.py
+++ b/unicode.py
@@ -1,3 +1,5 @@
+import unicodedata
+
 from errbot import BotPlugin, botcmd
 
 
@@ -21,4 +23,26 @@ class Unicode(BotPlugin):
         try:
             return ''.join([chr(int(i)) for i in args.split()])
         except ValueError as e:
-            return "Error: {}".format(e)
+            return "**Error**: {}".format(e)
+
+    @botcmd
+    def unicode_lookup(self, message, args):
+        """Looks up a character by name"""
+        if not args:
+            return "**Usage**: !unicode lookup <name>"
+
+        try:
+            return "Character is {}".format(unicodedata.lookup(args))
+        except KeyError:
+            return "**Error**: Character not found"
+
+    @botcmd
+    def unicode_name(self, message, args):
+        """Looks up the name of a character"""
+        if len(args) != 1:
+            return "**Usage**: !unicode name <chr>"
+
+        try:
+            return "Character's name is {}".format(unicodedata.name(args))
+        except ValueError:
+            return "**Error**: Character not found"