2010-01-30 17 views
0

嘿傢伙我有一個NSString,裏面有一個ó,所以當我把它放在一個閱讀「ó」的TextView中時,我讀「A³」。iPhone:Nsstring有一個ó

所以這是我做過什麼:

self._Direccion = [self._Direccion stringByReplacingOccurrencesOfString:@ 「A 3」 withString:@ 「O」];

,但它不工作,我不知道爲什麼...

正在爲這樣的:

/* A */self._Direccion = [self._Direccion stringByReplacingOccurrencesOfString: @「á」withString:@「á」];

/*é*/self._Direccion = [self._Direccion stringByReplacingOccurrencesOfString:@「Ã」「withString:@」é「];

/*í*/self._Direccion = [self._Direccion stringByReplacingOccurrencesOfString:@「Ã」withString:@「í」];

/*ú*/self._Direccion = [self._Direccion stringByReplacingOccurrencesOfString:@「ú」withString:@「ú」];

,但不與 「O」 why's該工作?

問候 卡洛斯巴爾

+0

您是否檢查過原始字符串和新字符串的編碼?我的第一個猜測是會出現錯誤,可能最好使用UTF-8。您可能還想查看文檔以獲取更多信息:http://developer.apple.com/iphone/library/documentation/Cocoa/Reference/Foundation/Classes/NSString_Class/Reference/NSString.html#//apple_ref/doc/ uid/20000154-SW37 – Robin 2010-01-30 15:16:30

+0

是的原始字符串來自mysql,但與轉換器我trasnsformed mysqlt數據庫sqlite,這是它看起來在mysql「√≥」這是「ó」 – 2010-01-30 15:55:40

+0

這是一個錯字或做A在textview中沒有口音? – 2010-01-30 17:25:01

回答

2

這是一個字符串編碼的問題,你不應該通過手動替換字符,但通過在非常地步,你初始化它們建設有正確的編碼這些字符串解決。

如果這些字符串具有不同的編碼UTF-8來自某些數據庫,那麼你可以通過使用例如指定編碼的NSString:

NSString* string = [NSString stringWithCString: buffer 
    encoding: NSISOLatin2StringEncoding]; 

確保選中瞭解源編碼第一個字符串。有許多stringencoding類型,但iPhone將支持其中大部分。

+0

我已經完成了stringEncoding和whit NSISOLatin2StringEncoding它給了我這個:「ĂÂł」而不是「ó」,這就是爲什麼我試圖自己替換它 – 2010-01-31 05:27:11

+0

那麼它可能不是ISO拉丁-2。 – 2010-01-31 14:41:36

+0

實際上我已經嘗試了所有我找到的NSStringEnconding格式,而且它們都沒有工作 – 2010-02-01 22:48:24