]> git.phdru.name Git - bookmarks_db.git/blobdiff - Robots/parse_html.py
Fixed a bug - break out of the loop after finding the first working charset.
[bookmarks_db.git] / Robots / parse_html.py
index c7acb6426e7dfbf386702ffb18fe5f12b3bed1ce..c05e66cce3a2ad394807b057e4071625f5390fcb 100755 (executable)
@@ -56,7 +56,16 @@ def parse_html(filename, charset=None, log=None):
          charset = None         # ...try charset from HTML
 
    for p in parsers:
-      parser = p(filename, charset)
+      charsets = [universal_charset, DEFAULT_CHARSET]
+      if charset not in charsets:
+         charsets.insert(0, charset)
+      parser = None
+      for c in charsets:
+         try:
+            parser = p(filename, c)
+            break
+         except UnicodeEncodeError:
+            pass
       if parser:
          break
       else:
@@ -77,7 +86,7 @@ def parse_html(filename, charset=None, log=None):
          if parser.meta_charset:
             if log: log("   META charset   : %s" % parser.charset)
          else:
-            if log: log("   HTTP charset   : %s" % parser.charset)
+            if log: log("   guessed charset: %s" % parser.charset)
          if log: log("   current charset: %s" % universal_charset)
          if log: log("   title          : %s" % title)
          try: