iOS,sqlite3& unicode char

时间:2013-08-19 16:58:12

标签: ios unicode sqlite nsstring

对于我的应用程序,我希望能够使用像\ n这样的unicode字符,以及这些字符: http://www.easyapns.com/category/just-for-fun

文本存储在sqlite3数据库中,当我读取它时,我得到的文本是\ ue415而不是笑脸。我既没有换行符,也有一个\ n。

我可以使用这段代码显示表情符号和换行符:

NSString* unicodeString = [myString stringByReplacingOccurrencesOfString:@"\\n" withString:@"\n"];
unicodeString = [unicodeString stringByReplacingOccurrencesOfString:@"\\ue022" withString:@"\ue022"];
// etc...

但我想找到一种通用的方法,以便能够显示所有unicode字符。

我以这种方式从我的sqlite3数据库中获取文本:

NSString* title = [NSString stringWithUTF8String:(char *)sqlite3_column_text(statement, 3)];

我试图用\替换\\,但是不可能写出字符串@“\”,因为它逃脱了“...我试图用\\取代\\\\,但它没有'我也尝试使用其他编码从数据库中获取字符串,但没有成功...

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

我终于在那里找到了我的解决方案(不是接受的答案,来自Nikolai Ruhe的那个):

Using Objective C/Cocoa to unescape unicode characters, ie \u1234

NSString* convertedString = [myString mutableCopy];
CFStringRef transform = CFSTR("Any-Hex/Java");
CFStringTransform((__bridge CFMutableStringRef)convertedString, NULL, transform, YES);

虽然它没有逃脱,但它可以通过stringByReplacingOccurrencesOfString轻松完成。