diff hgext/convert/common.py @ 4752:20ec5cc02f18

convert: ove recode method into converter_source
author Brendan Cully <brendan@kublai.com>
date Sun, 01 Jul 2007 12:58:08 -0700
parents 80fb4ec512b5
children 07efcce17d28
line wrap: on
line diff
--- a/hgext/convert/common.py
+++ b/hgext/convert/common.py
@@ -44,6 +44,18 @@ class converter_source(object):
         """Return the tags as a dictionary of name: revision"""
         raise NotImplementedError()
 
+    def recode(self, s, encoding=None):
+        if not encoding:
+            encoding = hasattr(self, 'encoding') and self.encoding or 'utf-8'
+            
+        try:
+            return s.decode(encoding).encode("utf-8")
+        except:
+            try:
+                return s.decode("latin-1").encode("utf-8")
+            except:
+                return s.decode(encoding, "replace").encode("utf-8")
+
 class converter_sink(object):
     """Conversion sink (target) interface"""