【发布时间】:2014-01-05 03:44:43
【问题描述】:
我在 sqlite 数据库的 tableview 单元格中显示数据。
数据来自xml解析和匈牙利语。
数据很好地插入到数据库中(即带有特殊字符)。但是在tableview中取显示的时候,显示为特殊字符,如下图;
编辑:
我已使用以下方法在数据库中转换和插入数据:
NSData *dataTitle = [articleElements.Title dataUsingEncoding:NSUTF8StringEncoding allowLossyConversion:YES];
NSString * stringTitle = [[NSString alloc] initWithData:dataTitle encoding:NSUTF8StringEncoding];
所以在数据库中它是- “Kosaras vereség hazai pályán”
但在从数组中的数据库中取回时,是-"Kosaras veres√©g hazaip√°ly√°n"
我在取货的时候试过这样-
NSData *data = [titleLabel.text dataUsingEncoding:NSNonLossyASCIIStringEncoding];
NSString *str = [[NSString alloc]initWithData:data encoding:NSUTF8StringEncoding];
NSLog(@"data = %@", str);
NSString *name2 = [NSString
stringWithCString:[str cStringUsingEncoding:NSUTF8StringEncoding]
encoding:NSNonLossyASCIIStringEncoding];
NSLog(@"name2 = %@", name2);
但未能成功。
我已经搜索了很多,但无法找到解决方案。
我该怎么做?
请帮帮我。
谢谢..
【问题讨论】:
-
你不能像这样将 ASCII 转换为 UTF8。可能有一些方法,但我建议您在数据库中使用 UTF8,这也可以减少您将来遇到的问题。
-
@boreas 感谢您的回复。但是你能告诉我如何在数据库中做到这一点吗?
-
对我来说,我使用准备好的数据库。如果您使用的是在运行时生成的数据库,也许您可以参考回答如何使用代码执行此操作。
-
@boreas 不,我没有在运行时使用 sqlite 管理器创建数据库文件 (.sqlite)。
-
但您提到它来自 xml 解析,在这种情况下,只需确保源具有正确的编码。我知道一些提供编码传输的文本编辑器,在它进入数据库之前确保它是 utf8。
标签: ios iphone objective-c sqlite encoding