20 lines
552 B
Python
20 lines
552 B
Python
import string
|
|
|
|
_encodings = ['iso8859-1', 'utf-16', 'utf-16be', 'utf-8']
|
|
|
|
def fixEncoding(theString, language=None):
|
|
encoding = ord(theString[0])
|
|
if 0 <= encoding < len(_encodings):
|
|
# If we're dealing with a particular language, we might want to try another code page.
|
|
if encoding == 0 and language == 'ko':
|
|
value = theString[1:].decode('cp949').encode('utf-8')
|
|
else:
|
|
value = theString[1:].decode(_encodings[encoding]).encode("utf-8")
|
|
else:
|
|
value = theString
|
|
|
|
if value:
|
|
value = value.strip('\0')
|
|
|
|
return value
|