回答
使用NSISOLatinStringEncoding
解決了這個問題。
隱蔽字符串轉換爲UTF-8,然後將其設置爲標籤文本。
[label setText:[NSString stringWithFormat:@"%s",[@"your_string" UTF8String]]];
[編輯]
我試用了一下沒有將字符串轉換爲UTF-8工作正常!
label.text = @"¿euro¿";
請確保您的服務器的響應設置爲UTF-8,它應該修復它。我遇到了同樣的問題,我從UTF8獲取字符串 - NSUTF8StringEncoding!我改變了它,一切工作正常!
例如我不喜歡它:
ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:url];
request.defaultResponseEncoding = NSUTF8StringEncoding;
//Conevrt the string utf-8 format
[yourstringvariabel UTF8String];
如果你有你的鍵盤上的歐元符號,你可以直接使用它:
[lLabel setText:@"€"];
否則使用Unicode轉義:
[lLabel setText:@"\u20AC"];
ADDED Foundation框架和NSString類不知道逃脫像「¿euro¿」序列,所以你必須手動替換:
NSString *s = @"abc ¿euro¿ def";
NSString *d = [s stringByReplacingOccurrencesOfString:@"¿euro¿" withString:@"\u20AC"];
像歐元這樣的特殊符號,倒轉的問號來自web服務,因爲我使用了utf8字符串編碼。所以當我試圖顯示它們時,這些字符不顯示,所以在這種情況下我不能硬編碼這些值,因爲這些值是動態的。對於上述情況倒置問號沒有得到顯示我已使用以下鏈接,但這是行不通的http://www.iphonedevsdk.com/forum/iphone-sdk-development/32878-displaying-special-characters-with-適當-encoding.html。你能告訴我如何解決這個問題 –
@Saikiran:看到我更新的答案。您還應該確保來自Web服務的字符串確實使用了「反轉問號」字符(Unicode U + 00BF),而不是其他顯示爲倒置問號的其他字符。 –
:我很驚訝地看到,在數據庫中,我設置了歐元符號作爲自定義名稱,但在Web服務響應中,我收到倒置問號而不是歐元符號,我無法用unicode字符替換此倒置問號你提到 –
- 1. MySQL特殊字符問題
- 2. 特殊字符問題
- 3. 特殊字符問題
- 4. 問題有特殊字符
- 5. 特殊字符問題
- 6. Smarty特殊字符問題
- 7. MYSQL特殊字符問題
- 8. 特殊字符問題
- 9. Inkscape特殊字符問題
- 10. 特殊字符問題
- 11. Elasticsearch特殊字符問題
- 12. 乳膠特殊字符/字體問題
- 13. iOS存摺特殊字符
- 14. iOS特殊字符轉換
- 15. 特殊字符JSON iOS SQLite
- 16. 特殊字符問題 - Rails/DB2
- 17. Icepdf特殊字符渲染問題
- 18. MySQL&PHP特殊字符問題
- 19. 特殊字符問題Flash到XML
- 20. ASP.NET特殊字符的問題
- 21. 數據庫的特殊字符問題
- 22. TinyMce mysql問題與特殊字符
- 23. Python中的特殊字符問題
- 24. Android中的特殊字符問題
- 25. ngx-translate特殊字符問題
- 26. 特殊字符的XML解析問題
- 27. ABCpdf 5編碼問題(特殊字符)
- 28. R - 帶特殊字符的SQLDF問題
- 29. HTML淨化器特殊字符問題?
- 30. PHP/MySQL特殊字符問題
這兩種方法都不起作用。 'dataUsingEncoding:'返回一個'NSData *','UTF8String'返回一個'const char *'。但'[UILabel setText:]'需要'NSString *'參數。 –
@Martin我一直在使用這個,但不是直接在字符串上,但從服務器返回的字符串,它工作正常。確保您將服務器響應類型設置爲NSUTF8StringEncoding。理想情況下,當您打印NSLog時,它可能會打印無效字符,但是如果將其分配給標籤,則會正確顯示它。 – applefreak
我的觀點是你不能使用'dataUsingEncoding'和'UTF8String'的結果作爲'[UILabel setText:]'的參數。您編寫的語句會導致編譯器警告有關不兼容的類型,並在運行時崩潰。 –