Преобразование в UTF-8 Python

Я использую Ubuntu и Python 3.4 для загрузки данных из API википедии. Я сохраняю имена и вижу, что символы на разных языках сохраняются неправильно.

Например: 日の火曜日 сохраняется как æ¥ã®ç "ææ¥.

Я подумал, что не могу сохранить его в UTF-8, поэтому я изменил свой код на

fd = io.open("filename",'w',encoding='utf8')
fd.write(str(name.encode('utf-8'), 'utf-8'))

Но я все равно получаю тот же результат.

API, который я использую, здесь.

До сих пор я понимаю, что utf-8 должен уметь обрабатывать тексты для всех языков. Также консоль в Ubuntu по умолчанию имеет utf-8, и она должна правильно выводить строки, если я запускаю команду вроде more,

2 ответа

Решение

Проблема была в моем клиенте ssh, и он некорректно отображал строки. Код работал нормально.

Проверьте код ответа, возьмите код ответа и используйте его для декодирования. Ты можешь использовать name.decode('utf-8') или же str(name, 'utf-8') расшифровать.

Fe

resp = urlopen(url)
if resp.code == 200:
    with open('filename', 'w') as fd:
        fd.write(str(name, resp.info().get_content_charset()))
        #or fd.write(name.decode(resp.info().get_content_charset()))
Другие вопросы по тегам