1 回答

TA貢獻(xiàn)1817條經(jīng)驗(yàn) 獲得超6個(gè)贊
由于six.text_typeist 只是對(duì)strorunicode類型的引用,因此等效函數(shù)將是:
def convert_to_unicode(text):
return six.text_type(text, encoding='utf8', errors='ignore')
但它在極端情況下的行為并不相同,例如。它會(huì)很高興地轉(zhuǎn)換一個(gè)整數(shù),所以你必須先在那里做一些檢查。
另外,我不明白您為什么要擁有errors='ignore'. 你說(shuō)你假設(shè) UTF-8。但是,如果違反此假設(shè),您將默默地刪除數(shù)據(jù)。我強(qiáng)烈建議使用errors='strict'.
編輯:
text我剛剛意識(shí)到,如果已經(jīng)是您想要的,這將不起作用。此外,它很高興為任何非字符串輸入引發(fā) TypeError。那么這個(gè)怎么樣:
def convert_to_unicode(text):
if isinstance(text, six.text_type):
return text
return six.text_type(text, encoding='utf8', errors='ignore')
這里發(fā)現(xiàn)的唯一極端情況是 Python 版本既不是 2 也不是 3。我仍然認(rèn)為你應(yīng)該使用errors='strict'.
添加回答
舉報(bào)