2012-02-09 32 views
0

我正在开发一个iPhone应用程序,其中我必须使用在sqlite中预先捆绑的丹麦语言。我有excelsheet(.csv)格式的丹麦语言数据,我必须导入到sqlite数据库中。但丹麦语有一些特殊字符,我无法检索,因为它似乎在excelsheet中。你可以请建议我如何实现这一点,并使用丹麦语言的SQLite数据库。iphone中的丹麦语言支持数据库

谢谢。

+0

将从这个问题帮助的答案? http://stackoverflow.com/questions/4664335/reading-unicode-from-sqlite-and-creating-a-nsstring – Petesh 2012-02-09 12:16:02

回答

0

当你要进入分贝值,并将其转换为

$(char *)[str cStringUsingEncoding:NSUTF8StringEncoding] 
+0

但我的数据将被预先捆绑在应用程序中,而不是以编程方式插入数据。我有excelsheet(.csv)格式的丹麦语言数据,我必须导入到sqlite数据库中。 – 2012-02-09 10:10:50

+0

ok意味着当你要读取excelsheet(.csv)格式时,它会给出error.right? – hchouhan02 2012-02-09 11:45:36

+0

是的你是对的,你能给我一些解决方案吗? – 2012-02-09 12:23:20

0

下面是创建一个sqlite的脚本来创建并插入基于csv文件的内容表中的一些Python代码。它导入一个名为feeds.csv的文件,这是一个用通用换行符(U)打开的;分隔的UTF8文件(这是为了在Mac上读取时支持DOS样式的文件)。

有问题的文件有一个起始行,它包含列名,它们被填充到由代码构造的data表中。

脚本的输出是一个可以使用命令sqlite foo.db <output执行的文件。放入.db文件的数据本来就是UTF8。

#!/usr/bin/python 

import csv 

reader = csv.reader(open("feeds.csv", 'rU'), delimiter=';') 

printed_header = None 
num_cols = None 

for row in reader: 
    if not printed_header: 
     num_cols = 0 
     print "create table data (", 
     for col in row: 
      if len(col) > 0: 
       num_cols += 1 
       if (num_cols > 1): 
        print ",", 
       print "%s varchar" % col, 
     print ");" 
     printed_header = True 
     continue 
    else: 
     print "insert into data values (", 
     pcol = 0 
     for col in row: 
      if len(col) > 0: 
       if pcol > 0: 
        print ",", 
       pcol += 1 
       print "'%s'" % col.replace("'", "''"), 
     print ");" 
0

尝试这个

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
NSString *documentsDirectory = [paths objectAtIndex:0]; 

NSString *filePath = [documentsDirectory stringByAppendingPathComponent:CSV_FILE_NAME]; 
NSFileManager *fm = [NSFileManager defaultManager]; 

NSData *data=[fm contentsAtPath:filePath]; 
NSString* newStr = [NSString stringWithUTF8String:[data bytes]];