2010-06-12 132 views
0

需要UITableView的Unicode字符我有incude像 d和O項部分的NSString varibales,如果我做從SQLite數據庫

cell.textLabel.text = person.name; 

,如果它包含這些字符之一cell.textlabel是空白!

我發現,如果我用

NSString *col1 = [NSString stringWithUTF8String:(char *)sqlite3_column_text(compiledStatement, 0)]; 

拉我的數據備份它拉回到零,但是使用deprectared方法

NSString *col1 = [NSString stringWithCString:(char *)sqlite3_column_text(compiledStatement, 0)]; 

顯示字符!

任何想法?

+0

聽起來像sqlite3_column_text正在使用MacRoman編碼。你能轉儲內容在十六進制,看看它是否看起來像UTF8(Ð== \ xC3 \ x90,Õ== \ xC3 \ x95)或MacRoman。 – drawnonward 2010-06-21 22:45:20

+0

如何轉儲十六進制?我可以控制我的sqlite中的列格式,所以它應該是什麼? – 2010-06-23 14:17:08

回答

1

其實玩過,並得到答案!

NSString *col1 = [NSString stringWithCString:(char *)sqlite3_column_text(compiledStatement, 0) encoding:NSASCIIStringEncoding]; 
0

Iirc,char是一個cstring,在您將UTF8多字節字符放入單個字節c字符串中的第一個sql中,這樣將會是壞的,空的或不可預知的。

至於將UTF8放入標籤中,由於存在亞洲語言應用程序,因此可以完成此操作。也許有一個你可以查看的教程。

+0

這並沒有真正回答這個問題,我知道你說的東西,但爲什麼CString的工作和UTF8沒有?忽略標籤,當我NSLog()col1變量返回時(空),如果這些字符在字符串中的任何地方。 – 2010-06-15 05:41:19