5

というわけで、いろいろ試して解決策を探しましたが、うまくいきませんでした...

私のSPARQLクエリは

    PREFIX dbp: <http://dbpedia.org/resource/>
    PREFIX dbpedia2: <http://dbpedia.org/property/>


   SELECT ?currentclub
   WHERE {
      dbp:".$term." dbpedia2:currentclub ?currentclub . 
      FILTER langMatches(lang(?currentclub), 'en')
   }

$term が名前にアクセント記号が付いたものと等しい場合、すべてが台無しになり、結果が得られません。私はさまざまなことを試しましたが、それらのどれも機能させることができないようです。助けを期待しています。

ありがとう

編集

私はPHPとcurlを使用しています。これは、私がダウンロードして必要に応じて変更したものです...これは、dbpedia と通信する部分です。

$searchUrl = 'http://dbpedia.org/sparql?'
      .'query='.urlencode($query)
      .'&format='.$format;

$query は上に掲載されており、使用されている形式は json です。

編集 2

これが私が使用しているもののソースコードです。https://gist.github.com/380379完全なコードを見ると、何が問題なのかがわかります。

アクセント付きの姓を含むデータベース フィールドを 'utf8_unicode_ci' に変更しましたが、まだ行き詰まっており、有効な解決策が見つかりません。

4

2 に答える 2

2

エンコードされたクエリをログに記録してみてください。イル ド フランス (地域) については、さまざまなアクセントが次のようにエンコードされている必要があります。

select distinct ?p ?o  where {
  <http://dbpedia.org/resource/%C3%8Ele-de-France_(region)> ?p ?o
}

したがって、「Î」文字は %C3%8E のように UTF-8 でエンコードされます。変換テーブルはhttp://www.utf8-chartable.de/で取得できます。

私は PHP 開発者ではありませんが、役立つ UTF-8 エンコーディング ライブラリがあるはずです。

于 2011-03-16T12:31:05.203 に答える