1

http://maps.google.com/maps/geo?q=48.209946,11.539421&output=csvを解析しています。応答は200,8、 "Lerchenstraße66、80995 Munich、Germany"です。CityName、つまり「Lerchenstraße66」のみを表示しています。ただし、問題は、CityName文字列にUnicode文字が含まれており、ビューに「Lerchenstra\U00dfe66」のように表示されていることです。出力は「Lerchenstrasse」または「Lerchenstraße」のようになります。

-(void) httpDataDidFinishLoadingWithData:(NSData *)theData {
  m_activityLoaded=NO;
  temp=[[NSString alloc] initWithData:[dataLoader httpData] encoding:NSUTF8StringEncoding];
  NSArray *listItems = [temp componentsSeparatedByString:@","];
  NSArray *tempCountryArray = [[listItems objectAtIndex:[listItems count]-3] componentsSeparatedByString:@"\""];
  NSString *string = [NSString stringWithFormat:@"%@", tempCountryArray];
  NSString *strTe=[[[[string
    stringByReplacingOccurrencesOfString:@"(" withString:@""]
    stringByReplacingOccurrencesOfString:@")" withString:@""]
    stringByReplacingOccurrencesOfString:@" " withString:@""]
    stringByReplacingOccurrencesOfString:@"\"" withString:@"" ];
  self.cityNameString = strTe;
  NSLog(@"CITY NAME IS : %@", strTe);
}

私を助けてください。前もって感謝します。

4

1 に答える 1

-1

答えがわかりました。サポートと提案をありがとう。コードは次のとおりです。

NSString* esc1 = [strTe stringByReplacingOccurrencesOfString:@"\\u" withString:@"\\U"];
NSString* esc2 = [esc1 stringByReplacingOccurrencesOfString:@"\"" withString:@"\\\""];
NSString* quoted = [[@"\"" stringByAppendingString:esc2] stringByAppendingString:@"\""];
NSData* data = [quoted dataUsingEncoding:NSUTF8StringEncoding];
NSString* unesc = [NSPropertyListSerialization propertyListFromData:data
  mutabilityOption:NSPropertyListImmutable format:NULL
  errorDescription:NULL];
assert([unesc isKindOfClass:[NSString class]]);
NSLog(@"Output = %@", unesc);

出力は「Lerchenstraße66」です。

于 2012-11-29T07:01:48.057 に答える