簡體   English   中英

在python中解碼錯誤的轉義字符

[英]Decode bad escape characters in python

所以我有一個有很多名字的數據庫。 名字有壞字符。 例如,記錄中的名字是José Florés我想清理它以獲得José Florés

我嘗試了以下

name = "    José     Florés "
print(name.encode('iso-8859-1',errors='ignore').decode('utf8',errors='backslashreplace')

輸出將姓氏' José Flor\\\\xe9s '' José Flor\\\\xe9s '

解決這個問題的最佳方法是什么? 名稱可以有任何類型的 unicode 或 hex 轉義序列。

ftfy是一個 python 庫,它使用名為fix_text的函數修復以不同方式損壞的 unicode 文本。

from ftfy import fix_text

def convert_iso_name_to_string(name):
    result = []

    for word in name.split():
        result.append(fix_text(word))
    return ' '.join(result)

name = "José Florés"
assert convert_iso_name_to_string(name) == "José Florés"

使用fix_text方法可以標准化名稱,這是解決問題的另一種方法。

我們將從一個包含非 ASCII 字符(即“ü”或“變音-u”)的示例字符串開始:

s = 'Florés'

現在,如果我們引用並打印字符串,它會給我們本質上相同的結果:

>>> s
'Florés'
>>> print(s)
Florés

與 Python 2.x 中相同的字符串 s 不同,在這種情況下 s 已經是一個 Unicode 字符串,並且 Python 3.x 中的所有字符串都自動是 Unicode。 明顯的區別是s在我們實例化之后沒有改變

您可以在此處找到相同的編碼和解碼字符串

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM