2012-01-03 163 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