我有一个 UTF-8 编码字符串,我想在标签中显示它。
当我设置断点并检查保存字符串的变量时,一切看起来都很好。但是,当我尝试输出到日志或标签时,我得到拉丁编码。
我已经尝试了几乎所有关于 SO 及其他的建议,但我就是无法让字符串正确显示。
这是我的代码:
NSString *rawString = [NSString stringWithFormat:@"%@",m_value];
const char *utf8String = [rawString UTF8String];
NSLog (@"%@", [NSString stringWithUTF8String:utf8String]);
NSLog (@"%s", utf8String);
NSLog (@"%@", rawString);
self.resultText.text = [NSString stringWithUTF8String:utf8String];
m_value是一个NSString,在调试窗口中,它也显示正确的编码。
m_value NSString * 0x006797b0 @"鄧樂愚..."
NSObject NSObject
isa Class 0x3bddd8f4
[0] Class
我正在使用 iOS 6.1 SDK。
Ok, if m_value
是一个包含 UTF-8 字符串的 const char,您必须使用此方法:
- (id)initWithUTF8String:(const char *)bytes
NSString *correctString = [[NSString alloc] initWithUTF8String: m_value];
通过是不正确的const char*
to @
格式化程序,因为@
means NSObject
,所以它总是不正确并可能导致应用程序崩溃
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)