SQLite3 データベースから生成された FMDB 結果セットをループして、後で使用するオブジェクトを作成しています。データ コンテンツは、さまざまなテキスト エディターとエンコーディングを使用して、さまざまなユーザーによって作成されます。
いくつかのレコードは問題があり、列にテキストがあるにもかかわらず、列の値に nil を返します。
たとえば、コマンドライン クエリを実行すると、データベース内の列のテキストが表示されますが、FMDB メソッド stringForColumn は nil を返します。また、潜在的な原因は、列の内容に含まれる ASCII 文字が多いことであることがわかります。これは、ユーザーが MS Word からテキストをコピーして貼り付けたために発生した可能性が最も高いです。私の質問は、データの一部がこれらの文字でデータベースにある可能性があることを認識して、このタイプの「ダーティ」データを処理する最良の方法は何ですか?

NSMutableDictionary *words = [[NSMutableDictionary alloc] init];
FMResultSet *rs = [db executeQuery:@"SELECT * FROM `foo` WHERE 1"];
while ([rs next]) {
Word *myWord = [[Word alloc] init];
//Coming in as a nil value eventhough there is text in the database column
[myWord setDefinition:[rs stringForColumn:@"definition"]];
[words setObject:[myWord definition] forKey:[myWord term]];
}