土耳其字符的ios(turkish characters ios)

2019-10-17 16:26发布

我是新来的iOS编程。 我开发一个应用程序,它会从我的web服务有些句子我插入到我的本地数据库然而,有些句子包含土耳其字符,如; “U,G,C,O”。 我可以在我的数据库精细插入这些字符,但是当我将它们输出到一个UILabel它看起来像:“≈üƒÜ√º√∂”。 我试图转换为NSUTF8StringEncoding但无济于事。

我有一个NSMutableArray ,命名的问题 ,其中包括一些土耳其字符。 我怎么能转换这个阵列来NSUTF8String格式?

对不起,我的英语不好:)谢谢。

Answer 1:

啊,我觉得这个问题是不是你需要你的数组转换 - 它是如何显示的字符串。

检查此代码具有土耳其足球运动员的数组:

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 ,你就不需要在上面使用的代码,因为所有数据必须正确编码,从而将正确显示。



Answer 2:

你可以尝试另一种字体样式。 例如;

myLabel.font = [UIFont fontWithName:@"Futura" size:10];

而且似乎什么NSLog的上线?



Answer 3:

这里是备选答案:

NSString *text  = brokenString;
NSData *data    = [text dataUsingEncoding: [NSString defaultCStringEncoding] ];
NSString *convertedToTurkishString = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding ];


Answer 4:

常量字符* utfString = [strText中cStringUsingEncoding:NSMacOSRomanStringEncoding];



文章来源: turkish characters ios
标签: ios xcode utf-8