2010-04-07 10 views
19

मैं NSString सभी स्थानीय पात्रों को बदलने ASCII में NSString करने के लिए यूनिकोड में बदलने की आवश्यकता ASCII करने के लिए। ..NSString यूनिकोड बराबर

ऐसा करने का सबसे आसान तरीका क्या है?

+0

सही समाधान http://stackoverflow.com/questions/6204718/status-code: ...

एक बेहतर समाधान पहले ठीक सब कुछ संभाल करने के लिए मैपिंग की अतिरिक्त लाइनें डालने के लिए है -0-on-google-geocode-api-from-iphone-sim-but-works-fine-on-web-non/6204970 # 6204970 बधाई ... – Moacir

उत्तर

41

-[NSString dataUsingEncoding:NSASCIIStringEncoding allowLossyConversion:YES]

आपके द्वारा दिए गए सभी उदाहरणों को आप जितना चाहें संभाला जाता है। ऐसा लगता है कि कोई स्पष्ट एनालॉग वाले वर्ण जैसे ☃, '?' पर जाएं।

+0

यही है। धन्यवाद। – Jacek

+0

यह मेरी समस्या को हल करता है http://stackoverflow.com/questions/6204718/status-code-0-on-google-geocode-api-from-iphone-sim-but-works-fine-on-web-non-e/6204970 # 6204970, धन्यवाद! – quantumpotato

1

उद्देश्य सी का NSASCIIEncoding केवल 127 तक समर्थन करता है, आप जो चरित्र सेट खोज रहे हैं वह ASCII तालिका में 127 से अधिक है।

NSASCIIStringEncoding 8-बिट वर्णों के भीतर सख्त 7-बिट ASCII एन्कोडिंग; ASCII मान 0 ... 127 केवल। मैक ओएस एक्स v10.0 और बाद में उपलब्ध है। NSString.h में घोषित किया गया।

0
NSData *data = [decode dataUsingEncoding:[NSString defaultCStringEncoding]]; 
decode = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding]; 
2

केन जवाब "æ" "ae" और "एस" के साथ "ß" के साथ बदल देगा, लेकिन संयुक्ताक्षर ँ की जगह नहीं होगी, ij, एफएफ, इंटरनेट, FL, ffi, FFL, फुट, सेंट

string = [string stringByReplacingOccurrencesOfString:@"Œ" withString:@"OE"]; 
string = [string stringByReplacingOccurrencesOfString:@"œ" withString:@"oe"]; 
string = [string stringByReplacingOccurrencesOfString:@"Đ" withString:@"D"]; 
string = [string stringByReplacingOccurrencesOfString:@"đ" withString:@"d"]; 
string = [string precomposedStringWithCompatibilityMapping]; 

NSData *data = [string dataUsingEncoding:NSASCIIStringEncoding allowLossyConversion:YES]; 
NSString *newString = [[NSString alloc] initWithData:data encoding:NSASCIIStringEncoding]; 
7
NSString *unicode = @"Chào mừng đến với Việt Nam."; 
NSString *standard = [unicode stringByReplacingOccurrencesOfString:@"đ" withString:@"d"]; 
standard = [standard stringByReplacingOccurrencesOfString:@"Đ" withString:@"D"]; 
NSData *decode = [standard dataUsingEncoding:NSASCIIStringEncoding allowLossyConversion:YES]; 
NSString *ansi = [[NSString alloc] initWithData:decode encoding:NSASCIIStringEncoding]; 
NSLog(@"ANSI: %@", ansi);