"""
HTML Parser
- Written by BroytMann, Jun 2002 - May 2003. Copyright (C) 1997-2003 PhiloSoft Design
+ Written by BroytMann. Copyright (C) 1997-2005 PhiloSoft Design
"""
import sys
current_charset = sys.getdefaultencoding()
-DEFAULT_CHARSET = "windows-1251" # Stupid default for Russian Cyrillic
+if current_charset == "ascii":
+ try:
+ import locale
+ except ImportError:
+ pass
+ else:
+ current_charset = locale.getpreferredencoding()
+current_charset = current_charset.replace("windows-", "cp").lower()
+DEFAULT_CHARSET = "cp1251" # Stupid default for Russian Cyrillic
from HTMLParser import HTMLParseError
title = parser.title
if not parser.charset:
- ascii = 1
- for c in title:
- if not (32 <= ord(c) <= 127): # non-ASCII character
- ascii = 0
- break
- if not ascii:
+ try:
+ unicode(title, "ascii")
+ except UnicodeDecodeError:
parser.charset = DEFAULT_CHARSET
+ if parser.charset:
+ parser.charset = parser.charset.replace("windows-", "cp").lower()
+
if parser.charset and (parser.charset <> current_charset):
try:
if parser.meta_charset: