我需要在具有 unicode 字符的 UITableViewCell 中显示文本;但是,它似乎只显示包含嵌入其中的 unicode 字符串的实际字符串。(例如:我的 UITableViewCell textLabel 显示 'Cari\u00F1na' 而不是 'Cariña'
我通过使用以下 python 脚本解析 utf-8 文本文件来创建 sqlite3 数据库:
import sqlite3;
import csv;
conn = sqlite3.connect('varietals.sqlite3')
#conn.text_factory = str
c = conn.cursor()
c.execute('drop table if exists varietals')
c.execute('create table varietals(id integer primary key autoincrement, name VARCHAR, type VARCHAR)')
data = open("varietals.txt", "rU").readlines()
for row in data:
vals = row.split(',')
name = unicode(vals[0])
t = unicode(vals[1])
sql = "insert into varietals values(NULL,?,?)"
c.execute(sql, [name, t])
conn.commit()
在 XCode 中,我使用标准 sqlite3 脚本解析数据库
NSString *query = @"SELECT * FROM varietals ORDER BY type DESC";
sqlite3_stmt *statement;
if(sqlite3_prepare_v2(_database, [query UTF8String], -1, &statement, nil) == SQLITE_OK){
while(sqlite3_step(statement) == SQLITE_ROW){
// int uniqueId = sqlite3_column_int(statement, 0);
char *nameChars = (char *)sqlite3_column_text(statement, 1);
char *typeChars = (char *)sqlite3_column_text(statement, 2);
NSString *name = [NSString stringWithUTF8String:nameChars];
NSString *type = [NSString stringWithUTF8String:typeChars];
NSDictionary *varietal = [NSDictionary dictionaryWithObjectsAndKeys:name, @"name", type, @"type", nil];
[retval addObject:varietal];
}
sqlite3_finalize(statement);
}
无论我做什么,我都无法让 textLabel 正确显示 'name' (Cariña),它只是一直显示 'Cari\u00F1na'; 但是,如果我在 'cellForRowAtIndexPath' 方法中进行硬编码: cell.textLabel.text = @"Cari\u00F1na"; 它确实显示正确。我只是无法让它从数据库文件中工作。
我的 python 脚本中是否缺少某些内容?Sqlite 解析器?
提前致谢!!