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)
@@ -98,6 +98,8 @@
                 kwargs['port'] = int(settings.DATABASE_PORT)
             kwargs.update(self.options)
             self.connection = Database.connect(**kwargs)
+            if self.connection.get_server_info() >= '4.1':
+                self.connection.charset = 'utf8'
             cursor = self.connection.cursor()
             if self.connection.get_server_info() >= '4.1':
                 cursor.execute("SET NAMES 'utf8'")
