2011-10-18 6 views
4

ことで注文が、私は、このような「O」、「U」としてトルコ語の文字でいくつかのレコードを持っている、「I」など私はSELECT * FROM TABLE ORDER BY COLUMN_NAMEクエリを使用して、私の値を選択し、これらの文字で始まるレコードが最後に来ています。SQLiteの3:文字の問題私のSQLite 3データベースのレコード

通常、彼らはそれぞれのドットレス版である文字の後に来ている必要があります。 「Ö」は「O」の後にあり、「Ü」は「U」の後にあります。

地域の設定は何ですか?これらの設定を制御する方法はありますか?

FirefoxでSQLite Managerを使用して自分のDBを管理しています。

ありがとうございます。

P.S.私はそれがSQLiteのための解決策ではないことを知っていますが、Objective-CでSQLite DBを使用する必要がある人は、SQLite DBから取得した後にデータ配列をソートできます。ここでは良い解決策があります:How to sort an NSMutableArray with custom objects in it?

+0

私はこれをSQLiteで行っていませんが、多分これが役立ちます:http://www.sqlite.org/datatype3.html#collat​​ion –

+0

私は見て、ここに戻ってきます。本当にありがとう。 – kubilay

答えて

0

これは、地域の設定をすることでしたが、最初に私は、UTF-8エンコーディングが使用されていることを確認します。

+0

ありがとうございます。私は検証しました、それはUTF-8です。 – kubilay

2

残念ながら、このためには直接的な解決策はありませんようです。少なくともiOSの場合。しかし、それに続く方法があります。私はSQLiteののメーリングリストに加入した後

は、ジャン=クリストフ・デシャンネームドユーザーがこの回答に付属している:

『Ö「私のSQLite 3データベースでは、私のようなトルコ語の文字 でいくつかのレコードを持っています』私は、クエリ「COLUMN_NAME BY 表ORDER SELECT * FROM」で私の値を選択すると、「U」、「I」などは、これらの の文字で始まるレコードは終わりに来ています。」

ベアボーンSQLiteは下部のみASCII文字セットに正しく照合します。 これは普通の英語にとっては問題ありませんが、ほとんどの人にとってはうまくいきません。

OはO 『の後にある『』、『Üは 『U』の後にある』「通常、彼らが好き。それぞれのドットレス バージョンである文字の後に来るべきだった』。それが地域について ものですこれらの設定を制御する方法はありますか? "

O)にリンクされているサードパーティのマネージャー)または のために(どちらかの拡張機能としてICUを使用します。

あなたはいくつかの方法の間で選択がそれが正しいか、あなたの言語(複数可)について 右の近くに取得する必要があります アプリケーション。 利点:それぞれの 操作で、一度に特定の言語に対して100%正しく動作します。 欠点:それは巨大で遅いので、対処する言語はすべて の照合順序を登録する必要があります。また、いくつかの英語以外の言語を含む列 ではうまく動作しません。

o)お使いのOSのICUルーチンを呼び出して、 を照合して 文字列を照合します。 利点:巨大なライブラリでコードを膨らませることはありません。 欠点:この拡張子を(Cなどで)書く必要があります。同じ 他の欠点もICUと同じです。

o)Windowsを使用している場合は、 拡張子の関数をダウンロードして使用してください。 は、正確な結果を得るために書きました。 利点:それは小さく、かなり速く、使用する準備ができて、それは言語です まだ独立して多くの言語のためにうまく動作します 同じ時間;また、多くのユニコード対応の文字列操作関数(アクセントなしまたは非アクセント) ファジー検索機能などを提供しています。 Cソースとして提供され、 x86 DLL、任意の目的のために無料です。 欠点:おそらく、 "vanilla english letters"以上の を使用している言語では、100%正しく動作しません。ドットなしのiは、ドット付きのiに沿って を照合します。これは、1つの言語と(発音区別符号を使用して、いくつかのアジアの言語を含む) ほとんどの言語 ダウンロードのための「公正」正しさのため 絶対正しさとの間の良好な妥協点だ:http://dl.dropbox.com/u/26433628/unifuzz.zip

「私は私のDBを管理するために、FirefoxでのSQLite Managerを使用しています。」

私の少しの拡張は、この1つで動作します。 ICUが組み込まれているSQLite Expertを試してみることもできます(少なくともProバージョンで) と多くはです。

+0

お返事ありがとうございます!上記のDropboxのリンクはもう使えません。 –