Index: trac/web/chrome.py
===================================================================
--- trac/web/chrome.py	(revision 10162)
+++ trac/web/chrome.py	(working copy)
@@ -775,6 +775,7 @@
             self.templates = TemplateLoader(
                 self.get_all_templates_dirs(), auto_reload=self.auto_reload,
                 max_cache_size=self.genshi_cache_size,
+                default_encoding="utf-8",
                 variable_lookup='lenient', callback=lambda template:
                 Translator(translation.get_translations()).setup(template))
 
@@ -848,7 +849,7 @@
 
         try:
             buffer = StringIO()
-            stream.render(method, doctype=doctype, out=buffer)
+            stream.render(method, doctype=doctype, out=buffer, encoding="utf-8")
             return buffer.getvalue().translate(_translate_nop,
                                                _invalid_control_chars)
         except Exception, e:

