5252from lib .core .convert import hexdecode
5353from lib .core .convert import htmlunescape
5454from lib .core .convert import stdoutencode
55- from lib .core .convert import unicodeencode
5655from lib .core .convert import utf8encode
5756from lib .core .data import conf
5857from lib .core .data import kb
@@ -894,14 +893,14 @@ def setColor(message, color=None, bold=False, level=None):
894893 retVal = message
895894 level = level or extractRegexResult (r"\[(?P<result>%s)\]" % '|' .join (_ [0 ] for _ in getPublicTypeMembers (LOGGING_LEVELS )), message )
896895
897- if isinstance (level , unicode ):
898- level = unicodeencode (level )
899-
900896 if message and getattr (LOGGER_HANDLER , "is_tty" , False ): # colorizing handler
901897 if bold or color :
902898 retVal = colored (message , color = color , on_color = None , attrs = ("bold" ,) if bold else None )
903899 elif level :
904- level = getattr (logging , level , None ) if isinstance (level , six .string_types ) else level
900+ try :
901+ level = getattr (logging , level , None )
902+ except UnicodeError :
903+ level = None
905904 retVal = LOGGER_HANDLER .colorize (message , level )
906905
907906 return retVal
@@ -989,7 +988,7 @@ def dataToOutFile(filename, data):
989988
990989 try :
991990 with open (retVal , "w+b" ) as f : # has to stay as non-codecs because data is raw ASCII encoded data
992- f .write (unicodeencode (data ))
991+ f .write (getBytes (data ))
993992 except UnicodeEncodeError as ex :
994993 _ = normalizeUnicode (filename )
995994 if filename != _ :
@@ -2431,7 +2430,7 @@ def getUnicode(value, encoding=None, noneToNull=False):
24312430 except UnicodeDecodeError :
24322431 return six .text_type (str (value ), errors = "ignore" ) # encoding ignored for non-basestring instances
24332432
2434- def getBytes (value ):
2433+ def getBytes (value , encoding = UNICODE_ENCODING ):
24352434 """
24362435 Returns byte representation of provided Unicode value
24372436
@@ -2446,11 +2445,11 @@ def getBytes(value):
24462445 for char in xrange (0xF0000 , 0xF00FF + 1 ):
24472446 value = value .replace (unichr (char ), "%s%02x" % (SAFE_HEX_MARKER , char - 0xF0000 ))
24482447
2449- retVal = value .encode (UNICODE_ENCODING )
2448+ retVal = value .encode (encoding )
24502449
24512450 retVal = re .sub (r"%s([0-9a-f]{2})" % SAFE_HEX_MARKER , lambda _ : _ .group (1 ).decode ("hex" ), retVal )
24522451 else :
2453- retVal = value .encode (UNICODE_ENCODING )
2452+ retVal = value .encode (encoding )
24542453 retVal = re .sub (r"\\x([0-9a-f]{2})" , lambda _ : _ .group (1 ).decode ("hex" ), retVal )
24552454
24562455 return retVal
@@ -4171,7 +4170,7 @@ def findPageForms(content, url, raise_=False, addToTargets=False):
41714170
41724171 class _ (io .BytesIO ):
41734172 def __init__ (self , content , url ):
4174- io .BytesIO .__init__ (self , unicodeencode (content , kb .pageEncoding ) if isinstance ( content , unicode ) else content )
4173+ io .BytesIO .__init__ (self , getBytes (content , kb .pageEncoding ))
41754174 self ._url = url
41764175
41774176 def geturl (self ):
0 commit comments