Index: /pyyaml/trunk/lib/yaml/serializer.py
===================================================================
--- /pyyaml/trunk/lib/yaml/serializer.py	(revision 133)
+++ /pyyaml/trunk/lib/yaml/serializer.py	(revision 135)
@@ -20,5 +20,5 @@
         self.last_anchor_id = 0
         self.closed = None
-        self.open(encoding, line_break, canonical, indent, width)
+        self.open(encoding, line_break, canonical, indent, width, allow_unicode)
 
     def open(self, encoding=None, line_break=None, canonical=None,
Index: /pyyaml/trunk/lib/yaml/representer.py
===================================================================
--- /pyyaml/trunk/lib/yaml/representer.py	(revision 133)
+++ /pyyaml/trunk/lib/yaml/representer.py	(revision 135)
@@ -120,12 +120,17 @@
 
     def represent_str(self, native):
+        encoding = None
         try:
-            native.encode('ascii')
-            ascii = True
-        except (UnicodeDecodeError, UnicodeEncodeError):
-            ascii = False
-        if ascii:
+            unicode(native, 'ascii')
+            encoding = 'ascii'
+        except UnicodeDecodeError:
+            try:
+                unicode(native, 'utf-8')
+                encoding = 'utf-8'
+            except UnicodeDecodeError:
+                pass
+        if encoding:
             return self.represent_scalar(u'tag:yaml.org,2002:str',
-                    unicode(native, 'ascii'))
+                    unicode(native, encoding))
         else:
             return self.represent_scalar(u'tag:yaml.org,2002:binary',
Index: /pyyaml/trunk/lib/yaml/__init__.py
===================================================================
--- /pyyaml/trunk/lib/yaml/__init__.py	(revision 133)
+++ /pyyaml/trunk/lib/yaml/__init__.py	(revision 135)
@@ -68,5 +68,5 @@
 def dump_all(natives, writer=None, Emitter=Emitter,
         Serializer=Serializer, Representer=Representer,
-        encoding=None, line_break=None, canonical=None,
+        encoding='utf-8', line_break=None, canonical=None,
         indent=None, width=None, allow_unicode=None):
     if writer is None:
@@ -92,5 +92,5 @@
 def safe_dump_all(natives, writer=None, Emitter=Emitter,
         Serializer=Serializer, Representer=SafeRepresenter,
-        encoding=None, line_break=None, canonical=None,
+        encoding='utf-8', line_break=None, canonical=None,
         indent=None, width=None, allow_unicode=None):
     return dump_all(natives, writer, Emitter, Serializer, Representer,
