我想從NSString獲得一個cString。
所以我們使用c String使用Encoding:方法。
但是,不能保證c String Using Encoding:方法的返回值。
(Apple的文檔:返回的C字符串保證僅在接收器被釋放前纔有效。)
所以Apple建議使用get CString:max Length:encoding:方法。
我想將確切長度傳遞給maxLength。
以字節爲單位獲取UTF-8字符串長度的最佳方法?
實施例1)
NSString *tmp = @"中日韓" // cString 9bytes
char *buffer = new tmp[9 + 1];
[tmp getCString:buffer maxLength:9+1 encoding:NSUTF8StringEncoding];
實施例2)
NSString *tmp = @"中日韓123" // cString 12bytes
char *buffer = new tmp[12 + 1];
[tmp getCString:buffer maxLength:12+1 encoding:NSUTF8StringEncoding];
有沒有辦法知道的9和12在上面的例子中的長度?
您的代碼是無效的,並不會編譯。你的意思是'NSString * tmp = @「你的字符串」;'或者你的意思是'char * tmp =「你的字符串」;'? – rmaddy
@rmaddy對不起,我的錯。我編輯它。 – user3569109
爲什麼標記爲C++?你只有Objective-C代碼。 – rmaddy