ios - 土耳其语字符 ios

标签 ios xcode utf-8

我是 iOS 编程新手。我正在开发一个应用程序,它从我的网络服务中获取一些句子,我将这些句子插入到我的本地数据库中但是,有些句子包含土耳其语字符,例如; “ü,ğ,ç,ö”。我可以将这些字符很好地插入到我的数据库中,但是当我将它们输出到 UILabel 时,它看起来像:“≈ü ƒü √º √∂”。我尝试转换为 NSUTF8StringEncoding 但无济于事。

我有一个 NSMutableArray,名为 questions,其中包含一些土耳其语字符。如何将此数组转换为 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];

它现在应该以正确的格式将页面标题显示为“Emre Belözoğlu”。


问题也可能出在数据从 SQLite 解析到您的 NSMutableArray 的方式上。以下是我在 Formula 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,您不需要使用顶部的代码,因为所有数据都应该正确编码,因此会正确显示。

关于ios - 土耳其语字符 ios,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14809188/

相关文章:

ios - 将 ipa 文件上传到应用商店连接时卡住了

ios - SpriteKit 发生未知崩溃

ios - 当搜索栏成为第一响应者时更改表 - swift

objective-c - 从 sqlite 数据库 Objective-C 播放音频文件

iPhone:即使设置了另一个语言,NSLocalizedString也会从英语.strings文件中读取

angularjs - 在 Tomcat 上读取 UTF-8 请求的问题

php - UTF-8贯穿始终

unicode - 什么是 UTF-8 数据的好终止符字节?

ios - UINavigationBar 为 UIScrollView 注册触摸

ios - 如何从本地 cocoapods 缓存中清除或清理特定的 pod