2015-12-21 60 views
1

我在我的iOS項目中使用sqlite數據庫。我已經準備好了數據庫,我在那裏得到英文文本,旁遮普語文本,印地文文本和英文版本。我使用這個代碼從數據庫中提取數據:在sqlite中以unicode形式獲取正常文本

NSMutableArray *getData = [[NSMutableArray alloc]init]; 
     getData = [[DBManager sharedDatabase]tableBani:[NSString stringWithFormat:@"select *from TableBani"]]; 
     NSLog(@"getData..%@",getData); 


but in result I am getting this from data base: 

getData..(
     { 
     EnglishText = "Ik\U201a\U00f1\U00b4oa\U2248\U00e2k\U0192\U00c5r sa\U00b7\U03c0\U00d8 n\U0192\U00c5m kar\U00b7\U03c0\U00d8\U0192\U00c5 purak\U00b7\U222b\U00f1 nirb\U00b7\U222b\U00f1a\U201a\U00f1\U00b4o nirvair ak\U0192\U00c5l m\U2248\U00b4ra\U00b7\U03c0\U00d8 aj\U2248\U00b4n\U0192\U00b4 saib\U00b7\U222b\U00f1a\U2248\U00e2 gur pars\U0192\U00c5\U00b7\U220f\U00e8."; 
     EnglishTranslation = "One Universal Creator God. The Name Is Truth. Creative Being Personified. No Fear. No Hatred. Image Of The Undying, Beyond Birth, Self-Existent. By Guru's Grace ~"; 
     HindiText = "\U2021\U00a9\U00a5 \U2021\U00a7\U220f\U2021\U00a7\U00a7\U2021\U00a7\U00f8 \U2021\U00a7\U00ae\U2021\U00a7\U00e6\U2021\U00a7\U00c6\U2021\U2022\U00c5 \U2021\U00a7\U00ef\U2021\U00a7\U221e\U2021\U00a7\U00a7\U2021\U00a7\U00e6 \U2021\U00a7\U2122\U2021\U2022\U00c5\U2021\U00a7\U221e\U2021\U00a7\U00f1\U2021\U2022\U00c5 \U2021\U00a7\U00ae\U2021\U00a7\U00f8\U2021\U00a7\U221e\U2021\U00a7\U2260\U2021\U00a7\U00e2 \U2021\U00a7\U00ae\U2021\U00a7\U00f8\U2021\U00a7\U221e\U2021\U00a7\U00b5\U2021\U2022\U00e0\U2021\U00a7\U221e\U2021\U2022\U00c5 \U2021\U00a7\U00d6\U2021\U00a7\U00ef\U2021\U00a7\U00e6\U2021\U00a7\U2264 \U2021\U00a7\U00c6\U2021\U2022\U00c7\U2021\U00a7\U221e\U2021\U00a7\U00a7\U2021\U00a7\U00f8 \U2021\U00a7\U00d6\U2021\U00a7\U00fa\U2021\U2022\U00c7\U2021\U00a7\U00ae\U2021\U2022\U00c4 \U2021\U00a7\U220f\U2021\U2022\U00e0\U2021\U00a7\U2260\U2021\U00a7\U00c7 \U2021\U00a7\U00f3\U2021\U2022\U00c5\U2021\U00a7\U221e \U2021\U00a7\U2122\U2021\U2022\U00e7\U2021\U00a7\U221e\U2021\U00a7\U220f\U2021\U00a7\U00e6\U2021\U00a7\U00b6\U2021\U00a7\U00f8 \U2021\U2022\U2022"; 
     ID = 1; 
     PunjabiText = "\U2021\U00a9\U00a5 \U2021\U00ae\U220f\U2021\U00ae\U00a7\U2021\U00ae\U00f8 \U2021\U00ae\U00ae\U2021\U00ae\U00e6\U2021\U00ae\U00c6\U2021\U00a9\U00c5 \U2021\U00ae\U00ef\U2021\U00ae\U221e\U2021\U00ae\U00a7\U2021\U00ae\U00e6 \U2021\U00ae\U2122\U2021\U00a9\U00c5\U2021\U00ae\U221e\U2021\U00ae\U00f1\U2021\U00a9\U00c5 \U2021\U00ae\U00ae\U2021\U00ae\U00f8\U2021\U00ae\U221e\U2021\U00ae\U2260\U2021\U00ae\U00e2 \U2021\U00ae\U00ae\U2021\U00ae\U00f8\U2021\U00ae\U221e\U2021\U00ae\U00b5\U2021\U00a9\U00e0\U2021\U00ae\U221e\U2021\U00a9\U00c5 \U2021\U00ae\U00d6\U2021\U00ae\U00ef\U2021\U00ae\U00e6\U2021\U00ae\U2264 \U2021\U00ae\U00c6\U2021\U00a9\U00c7\U2021\U00ae\U221e\U2021\U00ae\U00a7\U2021\U00ae\U00f8 \U2021\U00ae\U00d6\U2021\U00ae\U00fa\U2021\U00a9\U00c7\U2021\U00ae\U00ae\U2021\U00a9\U00c4 \U2021\U00ae\U220f\U2021\U00a9\U00e0\U2021\U00ae\U2260\U2021\U00a9\U221e \U2021\U00ae\U00f3\U2021\U00a9\U00c5\U2021\U00ae\U221e \U2021\U00ae\U2122\U2021\U00a9\U00e7\U2021\U00ae\U221e\U2021\U00ae\U220f\U2021\U00ae\U00e6\U2021\U00ae\U00b6\U2021\U00ae\U00f8 \U2021\U2022\U2022"; 
     pageNumber = 1; 
    }, 

這是從那裏我得到的數據DB代碼:

- (NSMutableArray*) tableBani:(NSString *)_query 
{ 
    NSMutableArray *drr=[[NSMutableArray alloc] init]; 
    NSString *query; 
    query =_query; 

    const char *sql = [query cStringUsingEncoding:NSUTF8StringEncoding]; 
    sqlite3_stmt *statement = nil; 
    if(sqlite3_prepare_v2(dataBaseConnection,sql, -1, &statement, NULL)!= SQLITE_OK) 
    { 
     NSAssert1(0,@"error preparing statement",sqlite3_errmsg(dataBaseConnection)); 
    } 
    else 
    { 
     while (sqlite3_step(statement) == SQLITE_ROW) 
     { 
      [drr addObject:[NSDictionary dictionaryWithObjectsAndKeys: 

          [NSString stringWithFormat:@"%s", (char*)sqlite3_column_text(statement,0)],@"ID", 
          [NSString stringWithFormat:@"%s", (char*)sqlite3_column_text(statement,1)],@"pageNumber", 
          [NSString stringWithFormat:@"%s", (char*)sqlite3_column_text(statement,2)],@"PunjabiText", 
          [NSString stringWithFormat:@"%s", (char*)sqlite3_column_text(statement,3)],@"HindiText", 
          [NSString stringWithFormat:@"%s", (char*)sqlite3_column_text(statement,4)],@"EnglishText", 
          [NSString stringWithFormat:@"%s", (char*)sqlite3_column_text(statement,5)],@"EnglishTranslation", 


          nil]]; 

     } 
    } 

    sqlite3_finalize(statement); 

    return drr; 
} 

我不知道我怎麼能在旁遮普語或獲取文本印地語格式。請建議我如何從數據庫中獲取實際文本。我也嘗試在utf-8中轉換文本,但沒有結果。請幫幫我。

在此先感謝。

+0

你能告訴我你如何顯示這個文本? –

+0

我使用這個:NSData * dataenc = [string dataUsingEncoding:NSNonLossyASCIIStringEncoding]; NSString * encodevalue = [[NSString alloc] initWithData:dataenc encoding:NSUTF8StringEncoding]; NSLog(@「result string:%@」,encodevalue); self.textView.text = encodevalue; –

+0

如果我解碼字符串,然後得到null –

回答

1

剛剛嘗試下面的代碼,一旦:

NSString *text = [NSString stringWithUTF8String:(char*)sqlite3_column_text(compiledStatement, 3)]; 

希望它會工作。 :)

+0

我應該在哪裏編寫此代碼?\ –

+0

您想要顯示解碼字符串的位置。 –

+0

它使我的應用程序崩潰。 –

相關問題