2012-02-09 56 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]];