解码字符串以识别法语字符

时间:2018-05-22 15:41:11

标签: python utf-8 decode python-3.6

如何解码字符串以识别python中的法语字符 例如'Pneusété'应该像'Pneusété'

我试过这个,但看起来不起作用

var ='Pneus été'
print(var.decode('utf-8'))

这是我的原始代码:

from bs4 import BeautifulSoup
import os
import math
import requests 
import pandas as pd
import helpers
import os
if __name__== '__main__':
    soup = BeautifulSoup(open(os.getcwd()+"/Desktop/Pneus auto _ Michelin FR.html"), 'html.parser')
    tyre_category = soup.find_all('div', class_='tyre')
    for category in tyre_category:
        tyre_name = category.img['alt']
        tyre_season = category.find('span', class_='season-icon')['title']
        url_for_tyre_details = category.find('a', class_='tyre-detail')['href']

        print(tyre_name, tyre_season, url_for_tyre_details, sep=",")

输出:

MICHELIN Primacy 4,Pneus été,https://www.michelin.fr/pneus/michelin-primacy-4
MICHELIN Pilot Sport 4,Pneus été,https://www.michelin.fr/pneus/michelin-pilot-sport-4
MICHELIN Pilot Sport 4 S,Pneus été,https://www.michelin.fr/pneus/michelin-pilot-sport-4-s
MICHELIN Pilot Sport Cup 2,Pneus été,https://www.michelin.fr/pneus/michelin-pilot-sport-cup-2
MICHELIN CrossClimate+,toutes saisons,https://www.michelin.fr/pneus/michelin-crossclimateplus
MICHELIN Alpin 6,Pneus Hiver,https://www.michelin.fr/pneus/michelin-alpin-6
MICHELIN Pilot Alpin 5,Pneus Hiver,https://www.michelin.fr/pneus/michelin-pilot-alpin-5
MICHELIN Pilot Alpin PA4,Pneus Hiver,https://www.michelin.fr/pneus/michelin-pilot-alpin-pa4

请注意,变量 tyre_season 得到的印刷品就像这样的'Pneusété',我希望像'Pneusété'

1 个答案:

答案 0 :(得分:0)

问题中的字符串包含的是unicode字符串Pneus été的UTF-8表示形式。您可以这样尝试:

s = 'Pneus été'
s.encode(encoding='utf-8')

这导致编码的字节b'Pneus \xc3\xa9t\xc3\xa9'

或者反过来说:如果你取出字节并将它们解码为UTF-8:

s = b'Pneus \xC3\xA9t\xC3\xA9'
s.decode('utf-8')

你得到:'Pneus été'作为unicode字符串。

因此,在代码中的某处,您已经读取了unicode字符串而没有正确解码。