将NSString转换为const char*

lit*_*boy 2 iphone ios

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

NSString *s = @"??????????????"; //Hebrew characters
const char *t = [s cStringUsingEncoding:NSUTF8StringEncoding];
NSLog(@"\n str = %s",t);
Run Code Online (Sandbox Code Playgroud)

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

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

谢谢,loganathan

Kri*_*izz 6

这只是因为%sin NSLog表示ASCII字符串(简单地说是普通C 8位字符串),而不是UTF8.

尝试以下怎么样?:

NSString *s = @"??????????????"; //Hebrew characters
NSLog(@"\n str = %@",s);
Run Code Online (Sandbox Code Playgroud)

您还可以注销UTF16数组:

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