Index: django/db/models/base.py
===================================================================
--- django/db/models/base.py	(revision 4431)
+++ django/db/models/base.py	(working copy)
@@ -77,7 +77,10 @@
         return getattr(self, self._meta.pk.attname)
 
     def __repr__(self):
-        return '<%s: %s>' % (self.__class__.__name__, self)
+        try:
+            return '<%s: %s>' % (self.__class__.__name__, self)
+        except UnicodeEncodeError:
+            return '<%s: %s>' % (self.__class__.__name__, self.__str__().encode(settings.DEFAULT_CHARSET))
 
     def __str__(self):
         return '%s object' % self.__class__.__name__
Index: django/db/backends/mysql/base.py
===================================================================
--- django/db/backends/mysql/base.py	(revision 4431)
+++ django/db/backends/mysql/base.py	(working copy)
@@ -89,6 +89,7 @@
                 'db': settings.DATABASE_NAME,
                 'passwd': settings.DATABASE_PASSWORD,
                 'conv': django_conversions,
+                'charset': 'utf8'
             }
             if settings.DATABASE_HOST.startswith('/'):
                 kwargs['unix_socket'] = settings.DATABASE_HOST
