代码之家  ›  专栏  ›  技术社区  ›  AbdeAMNR

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

  •  0
  • AbdeAMNR  · 技术社区  · 6 年前

    示例“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
    

    请注意变量 像这样印着“Pneus t”,我想像那样印着“Pneus t”

    1 回复  |  直到 6 年前
        1
  •  0
  •   Arminius    6 年前

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

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

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

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

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

    所以,在代码中的某个地方,您没有正确解码就读取了unicode字符串。