Я хочу сохранить строку в новом txt-файле.Почему я не могу сохранить файл в формате utf-8
Кодирование строки является «UTF-8» (я так думаю), и он содержит китайский иероглиф
Но файл является GB2312
вот мой код, я опускаю некоторые из них:
# -*- coding:utf-8 -*-
# Python 3.4 window 7
def getUrl(self, url, coding='utf-8'):
self.__reCompile = {}
req = request.Request(url)
req.add_header('User-Agent','Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/44.0.2403.157 UBrowser/5.5.9703.2 Safari/537.36')
with request.urlopen(req) as response:
return response.read().decode(coding)
def saveText(self,filename,content,mode='w'):
self._checkPath(filename)
with open(filename,mode) as f:
f.write(content)
joke= self.getUrl(pageUrl)
#some re transform such as re.sub('<br>','\r\n',joke)
self.saveText(filepath+'.txt',joke,'a')
Иногда есть UnicodeEncodeError:
'encode' one returns 'должен быть строкой, а не байтами. Но 'codecs' работает, спасибо большое! –