2012-01-03 187 views
2

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

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

控制台显示这样的 “◊ô◊õ◊õ◊¢◊ô◊û◊ë◊ë◊í◊ô◊†◊†◊ô◊û”。

如何获得实际的NSString值为const char *?

谢谢, loganathan

+1

您已经有了实际的NSString价值为UTF-8字符数组和相关的NSLog问题输出,请参阅http://stackoverflow.com/a/722984/1101537 – alexander 2012-01-03 10:01:49

回答

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); 
+0

不错。非常有用的知道... – 2012-01-03 11:24:08

相关问题