我正在尝试清理通过 SPARQL 查询获得的以下链接的页面内容:
http://www.rechercheisidore.fr/sparql/query?query=PREFIX+dcterms%3A+%3Chttp%3A%2F%2Fpurl.org%2Fdc%2Fterms%2F%3E+PREFIX+foaf%3A+%3Chttp%3A%2F%2Fxmlns.com%2Ffoaf%2F0.1%2F%3E+SELECT+%3Furicollection+%3Ftitrecollection+%3Fdescription+%3Fadresseweb+WHERE+{+%3Furicollection+%3Fpredicat+%3Chttp%3A%2F%2Fwww.rechercheisidore.fr%2Fclass%2FCollection%3E.+%3Furicollection+dcterms%3Atitle+%3Ftitrecollection.+%3Furicollection+dcterms%3Adescription+%3Fdescription.+%3Furicollection+foaf%3Ahomepage+%3Fadresseweb.+}+ORDER+BY+ASC%28%3Ftitrecollection%29+LIMIT+300&format=application%2Frdf%2Bxml
该页面是法语的。每个带重音的字母都没有正确显示,当尝试用 Python 中的好字符替换字符时,它会返回错误。我试图将文件转换为 UTF-8,但这并没有解决任何问题(实际上它已经在 utf-8 中)因此产生了混乱的编码想法(网站的一位工程师证实这是他们三重商店中的一个错误)。一个例子:而不是é
你应该看到的é
。
我想有一个文件,我至少可以使用 python 2.7str.replace()
函数来取回正确的字符——或者有更好的方法来实现这一点吗?
演示问题的 RDF XML 文件中的示例:
<rdf:RDF xmlns:res="http://www.w3.org/2005/sparql-results#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<rdf:Description rdf:nodeID="rset">
<rdf:type rdf:resource="http://www.w3.org/2005/sparql-results#ResultSet" />
<res:resultVariable>uricollection</res:resultVariable>
<res:resultVariable>titrecollection</res:resultVariable>
<res:resultVariable>description</res:resultVariable>
<res:resultVariable>adresseweb</res:resultVariable>
<res:solution rdf:nodeID="r0">
<res:binding rdf:nodeID="r0c0"><res:variable>uricollection</res:variable><res:value rdf:resource="http://www.rechercheisidore.fr/resource/10670/3.ewe76u"/></res:binding>
<res:binding rdf:nodeID="r0c1"><res:variable>titrecollection</res:variable><res:value>Actualités de l'Ecole des Hautes Etudes en Sciences Sociales</res:value></res:binding>
<res:binding rdf:nodeID="r0c2"><res:variable>description</res:variable><res:value>L'Ãcole des hautes études en sciences sociales (EHESS), est issue de la transformation, en 1975, de la sixième section de l'Ãcole pratique des hautes études, section de sciences économiques et sociales, fondée en 1947 par Lucien Febvre, Charles Morazé et Fernand Braudel. L'EHESS occupe une place singulière dans le paysage français de la recherche. Elle forme des docteurs dans toutes les disciplines des sciences humaines et sociales, mais elle n'est pas une université.</res:value></res:binding>
<res:binding rdf:nodeID="r0c3"><res:variable>adresseweb</res:variable><res:value rdf:resource="http://www.ehess.fr"/></res:binding>
</res:solution>