【发布时间】:2014-07-10 17:01:36
【问题描述】:
我在使用 R 的 SPARQL 包时遇到了编码问题。我正在运行以下代码:
library(SPARQL)
rights_query <- '
PREFIX dc: <http://purl.org/dc/elements/1.1/>
PREFIX edm: <http://www.europeana.eu/schemas/edm/>
PREFIX ore: <http://www.openarchives.org/ore/terms/>
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
SELECT DISTINCT ?edmrights ?provider (COUNT(*) as ?count)
WHERE {
?agg rdf:type ore:Aggregation .
?agg edm:rights ?edmrights .
#?agg dc:rights ?dcrights .
?agg edm:dataProvider ?provider .
?proxy ore:proxyIn ?agg .
?proxy edm:type "IMAGE" .
}
GROUP BY ?edmrights ?provider
ORDER BY ?provider DESC(?count)'
eur <- "http://europeana.ontotext.com/sparql"
eur_data <- SPARQL(eur, rights_query)$results
write.csv(eur_data, "results.csv")
代码运行时没有任何错误或警告,但是在 RStudio 中查看的结果数据帧以及 CSV 显然存在编码问题。
例如,最后一个应该是部分西里尔字母:Чувашский государственный художественный музей / Chouvashia State Art Museum
但是它看起来像这样:ЧÑваÑÑкий гоÑÑдаÑÑÑвеннÑй ÑÑдожеÑÑвеннÑй мÑзей / Chouvashia State Art Museum
我检查了 SPARQL 查询返回的 XML。它通过了 XML 验证,并包含正确的“UTF-8”编码声明。 R XML 包(R SPARQL 包用于将 XML 输出解析为数据帧)应该能够识别这一点,对吧?
您可以检查整个XML output,以及CSV file。我在 OS X Mavericks 上通过 RStudio 运行 R 3.1.0。我已将 RStudio 的默认字符编码设置为 UTF-8。
【问题讨论】:
标签: xml r encoding utf-8 sparql