2016-05-31 48 views
0

顯示他們,我需要一些幫助:從web服務獲取的unicode字符,並在iOS應用

我從WebService的獲得只能從uunicode值的一部分,並在此之後我附加前綴\ u到完成值。 .ttf很好,我用一些硬編碼值進行了測試。

NSString *cuvant = [[self.catData objectAtIndex:indexPath.row]objectAtIndex:9]; //Get data 
//apend prefix (double \ to escape the \u command) 
cuvant = [NSString stringWithFormat:@"\\u%@",cuvant]; 


// cell.catChar.text = [NSString stringWithUTF8String:"\ue674"]; --->this works very well 
cell.catChar.text = [NSString stringWithUTF8String:[cuvant UTF8String]]; //---> this doesn't work 

我搜索的文件,和其他網站,但我沒發現什麼有用的,所有的線索都用硬編碼的數據...我需要TOT採取代碼dinamically

謝謝!

回答

1

您所需要的僅僅是將此單字符串作爲數據首先提供。因此,讓一個C字符串,然後

NSData *dataFromUnicodedString = [NSData dataWithBytes:yourCUnicodedString length:strlen(yourCUnicodedString)];

,之後生成的字符串將

NSString *unicodedString = [[NSString alloc] initWithData:dataFromUnicodedString encoding:NSUTF8StringEncoding];

+0

或'的NSString * S = @(CString的);'。 – trojanfoe

+0

非常感謝!我用這個固定它 NSString * cuvant = @「e674」; cuvant = [NSString stringWithFormat:@「\\ u%@」,cuvant]; NSLog(@「cuvant:%s」,[cuvant UTF8String]); // NSString * text = [NSString stringWithUTF8String:「\ ue674」]; NSString * text = [NSString stringWithUTF8String:[cuvant UTF8String]]; NSData * data2 = [cuvant dataUsingEncoding:NSUTF8StringEncoding]; NSString * decodevalue = [[NSString alloc] initWithData:data2 encoding:NSNonLossyASCIIStringEncoding]; –