-1

对于我的应用程序,我希望能够使用像 \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)];

我试图用\替换\\,但不能写字符串@“\”,因为它转义了“......我试图用\\替换\\\\,但它不起作用。我还尝试使用其他编码从数据库中获取字符串,但没有成功......

任何想法 ?

4

1 回答 1

0

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

使用 Objective C/Cocoa 对 unicode 字符进行转义,即 \u1234

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

虽然它不会转义 \n,但可以使用 stringByReplacingOccurrencesOfString 轻松完成。

于 2013-08-19T17:44:33.753 回答