Procházet zdrojové kódy

fix wrong charset when decoding Chinese content (#6774)

Co-authored-by: zhangwb <zhangwb@zts.com.cn>
tags/0.6.16
eric-0x72 před 1 rokem
rodič
revize
98d9837fbc
Žádný účet není propojen s e-mailovou adresou tvůrce revize
1 změnil soubory, kde provedl 13 přidání a 1 odebrání
  1. 13
    1
      api/core/tools/utils/web_reader_tool.py

+ 13
- 1
api/core/tools/utils/web_reader_tool.py Zobrazit soubor

@@ -10,6 +10,7 @@ import unicodedata
from contextlib import contextmanager
from urllib.parse import unquote

import chardet
import cloudscraper
from bs4 import BeautifulSoup, CData, Comment, NavigableString
from regex import regex
@@ -75,7 +76,18 @@ def get_url(url: str, user_agent: str = None) -> str:
if response.status_code != 200:
return "URL returned status code {}.".format(response.status_code)

a = extract_using_readabilipy(response.text)
# Detect encoding using chardet
detected_encoding = chardet.detect(response.content)
encoding = detected_encoding['encoding']
if encoding:
try:
content = response.content.decode(encoding)
except (UnicodeDecodeError, TypeError):
content = response.text
else:
content = response.text

a = extract_using_readabilipy(content)

if not a['plain_text'] or not a['plain_text'].strip():
return ''

Načítá se…
Zrušit
Uložit