Revision: 2508
Author: pekka.klarck
Date: Tue Feb 23 01:27:52 2010
Log: New implementation for utils.unic on Python. Based on a recipe from http://code.activestate.com/recipes/466341
http://code.google.com/p/robotframework/source/detail?r=2508

Modified:
 /trunk/src/robot/utils/unic.py

=======================================
--- /trunk/src/robot/utils/unic.py      Tue Feb 23 01:15:56 2010
+++ /trunk/src/robot/utils/unic.py      Tue Feb 23 01:27:52 2010
@@ -22,7 +22,6 @@
     from java.lang import Object

     def unic(item):
-        """Convert non-strings to unicode."""
         if isinstance(item, basestring):
             return item
         if sys.version_info[:2] > (2,2) and isinstance(item, Object):
@@ -32,9 +31,9 @@
 else:

     def unic(item):
-        """Convert non-strings to unicode."""
-        if isinstance(item, unicode):
-            return item
-        if isinstance(item, str):
-            return unicode(item, 'UTF-8', 'ignore')
-        return unicode(item)
+        # Based on a recipe from http://code.activestate.com/recipes/466341
+        try:
+            return unicode(item)
+        except UnicodeDecodeError:
+            ascii_text = str(item).encode('string_escape')
+            return unicode(ascii_text)

Reply via email to