远程服务器返回错误:(406)不可接受。将 sparql 查询中的阿拉伯字符发送到远程端点时

问题描述 投票:0回答:0

我在 asp.net 中使用 dotnetrdf,并尝试通过 sparql 获取作者姓名的 altLabels 我的查询是这样的:

SparqlRemoteEndpoint endpoint = new SparqlRemoteEndpoint(new Uri("http://dbpedia.org/sparql"), "http://dbpedia.org");
SparqlParameterizedString AuthorQueryString = new SparqlParameterizedString();
AuthorQueryString.Namespaces.AddNamespace("rdfs", new Uri("http://www.w3.org/2000/01/rdf-schema#"));
AuthorQueryString.Namespaces.AddNamespace("owl", new Uri("http://www.w3.org/2002/07/owl#"));
           
AuthorQueryString.CommandText = "Select * {?s rdfs:label ?o."+ 
                                 "optional{?s owl:sameAs ?w. FILTER(contains(str(?w),\"wikidata\")).}"+
                                                "FILTER(contains(str(?o),'jack')).}"+
                                                    "LIMIT 1 ";

它工作正常,但是当我用阿拉伯语字符串替换名称“jack”时,如“محمود”,我得到 WebException: The remote server returned an error: (406) Not Acceptable。 我试过了

myHttpWebRequest.Headers.Add("Accept-Language:ar")
;但没有成功。 该查询在 SPARQL 查询编辑器上运行良好 和回报

http://dbpedia.org/resource/Mahmoud_Darwish“محمود درويش”@arhttp://www.wikidata.org/entity/Q207720

sparql arabic http-status-code-406 dotnetrdf
© www.soinside.com 2019 - 2024. All rights reserved.