所以我有一个名称很多的数据库。名称中包含错误的字符。例如,记录中的名称为#cuadricula {
width: 600px;
height: 900px;
display: grid;
grid-template-columns: auto auto auto;
background: #c51162;
border: 1px solid #FFF;
overflow: hidden;
background-image: url('http://images.fastcompany.com/upload/Simple.jpg');
background-size: cover;
}
.item_cuadricula_1 {
background: rgba(253, 85, 143, 0.60);
}
@media only screen and (max-width: 650px) {
#cuadricula {
grid-template-columns: 1fr 1fr;
width: 100%;
}
我想清理它以获得José Florés
我尝试了以下
José Florés
输出将姓氏弄乱到name = " José Florés "
print(name.encode('iso-8859-1',errors='ignore').decode('utf8',errors='backslashreplace')
解决此问题的最佳方法是什么?名称可以具有任何类型的unicode或十六进制转义序列。
答案 0 :(得分:2)
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
方法可以对名称进行标准化,这是解决问题的另一种方法。
答案 1 :(得分:-1)
我们将从包含非ASCII字符(即“ü”或“ umlaut-u”)的示例字符串开始:
s = 'Florés'
现在,如果我们引用并打印该字符串,它会给我们基本上相同的结果:
>>> s
'Florés'
>>> print(s)
Florés
与Python 2.x中的相同字符串s相比,在这种情况下s已经是Unicode字符串,并且Python 3.x中的所有字符串都自动为Unicode。可见的区别是s在实例化后并没有改变
找到相同的内容