将NSString转换为const char *

时间:2012-01-03 09:38:50

标签: iphone ios

我想将nsstring值转换为const char *。

NSString *s = @"יככעימבבגיננימ"; //Hebrew characters
const char *t = [s cStringUsingEncoding:NSUTF8StringEncoding];
NSLog(@"\n str = %s",t);

控制台显示如下“◊ô◊õ◊õ◊¢◊◊◊◊◊◊◊◊◊◊◊◊◊◊◊◊

如何将实际的NSString值转换为const char *?

谢谢, loganathan

1 个答案:

答案 0 :(得分:6)

这只是因为%s中的NSLog表示ASCII字符串(准确地说是普通C 8位字符串),而不是UTF8。

尝试以下内容怎么样?:

NSString *s = @"יככעימבבגיננימ"; //Hebrew characters
NSLog(@"\n str = %@",s);

您也可以注销UTF16数组:

const wchar_t *t = (const wchar_t*)[s cStringUsingEncoding:NSUTF16StringEncoding];
NSLog(@"\n str2 = %S",t);