diff --git a/backlash/utils.py b/backlash/utils.py
index <HASH>..<HASH> 100644
--- a/backlash/utils.py
+++ b/backlash/utils.py
@@ -21,6 +21,11 @@ def escape(s, quote=False):
         return s.__html__()
     if not isinstance(s, (text_type, binary_type)):
         s = text_type(s)
+    if isinstance(s, binary_type):
+        try:
+            s.decode('ascii')
+        except:
+            s = s.decode('utf-8', 'replace')
     s = s.replace('&', '&amp;').replace('<', '&lt;').replace('>', '&gt;')
     if quote:
         s = s.replace('"', "&quot;")
@@ -34,4 +39,4 @@ def gen_salt(length):
 
 class RequestContext(dict):
     def __getattr__(self, attr):
-        return self[attr]
\ No newline at end of file
+        return self[attr]
This should fix issue with utf8 exceptions