我是新来的iOS编程。 我开发一个应用程序,它会从我的web服务有些句子我插入到我的本地数据库然而,有些句子包含土耳其字符,如; “U,G,C,O”。 我可以在我的数据库精细插入这些字符,但是当我将它们输出到一个UILabel
它看起来像:“≈üƒÜ√º√∂”。 我试图转换为NSUTF8StringEncoding但无济于事。
我有一个NSMutableArray
,命名的问题 ,其中包括一些土耳其字符。 我怎么能转换这个阵列来NSUTF8String格式?
对不起,我的英语不好:)谢谢。
啊,我觉得这个问题是不是你需要你的数组转换 - 它是如何显示的字符串。
检查此代码具有土耳其足球运动员的数组:
NSMutableArray *questions = [[NSMutableArray alloc] initWithObjects:@"Emre Belözoğlu", @"Gökhan Gönül", @"Mevlüt Erdinç", @"Nuri Şahin", nil];
const char *utf8string = [[NSString stringWithFormat:@"%@", [questions objectAtIndex:0]] UTF8String];
self.title = [NSString stringWithUTF8String:utf8string];
现在应该显示在页面的标题为“埃姆雷”在正确的格式。
这个问题可能替代地与数据从SQLite的到你解析的方式NSMutableArray
。 下面是我如何实现它的公式1的应用程序。
在viewDidLoad
我叫[self loadNamesFromDatabase];
它看起来像:
- (void)loadNamesFromDatabase
{
NSString *file = [[NSBundle mainBundle] pathForResource:@"Formula1" ofType:@"sqlite"];
sqlite3 *database = NULL;
if (sqlite3_open([file UTF8String], &database) == SQLITE_OK) {
sqlite3_exec(database, "select driver_id, driver_name, driver_nation, driver_team from drivers", MyCallback, drivers, NULL);
}
sqlite3_close(database);
}
和MyCallback
可以看到有功能如下:
static int MyCallback(void *context, int count, char **values, char **columns)
{
NSMutableArray *drivers = (NSMutableArray *)context;
NSString *columnName;
NSString *columnValue;
NSMutableDictionary * record = [NSMutableDictionary dictionary];
for (int i=0; i < count; i++) {
columnName = [NSString stringWithUTF8String:columns[i]];
if (values[i]){
columnValue = [NSString stringWithUTF8String:values[i]];
}
else{
columnValue = @"";
}
[record setObject:columnValue forKey:columnName];
}
[drivers addObject:record];
return SQLITE_OK;
}
其中drivers
是一个NSMutableArray
。 这里的关键是stringWithUTF8String
,你就不需要在上面使用的代码,因为所有数据必须正确编码,从而将正确显示。
你可以尝试另一种字体样式。 例如;
myLabel.font = [UIFont fontWithName:@"Futura" size:10];
而且似乎什么NSLog的上线?
这里是备选答案:
NSString *text = brokenString;
NSData *data = [text dataUsingEncoding: [NSString defaultCStringEncoding] ];
NSString *convertedToTurkishString = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding ];
常量字符* utfString = [strText中cStringUsingEncoding:NSMacOSRomanStringEncoding];