回答
使用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:]'的参数。您编写的语句会导致编译器警告有关不兼容的类型,并在运行时崩溃。 –