我在UIAlertView
显示国际字符时遇到问题。
我正在从this网址检索JSON格式的字符串。
返回的格式正常,它包含正确的字符。
当我尝试在UIAlertView
的应用中加载它时,我看到了这一点:
从西班牙语,克罗地亚语,中文等显示Unicode字符的正确方法是什么?
更改设置中的默认语言无法解决问题。
答案 0 :(得分:1)
没有任何代码,很难指出你出错的地方。下面的代码有效,我只能假设您正在使用编码数据做一些特别的果味。
NSData *data = [NSURLConnection sendSynchronousRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:@"http://kancelarijahatipovic.com/translate.php?from=eng&dest=hr&phrase=iron"]] returningResponse:nil error:nil];
NSString *string = [NSString stringWithUTF8String:[data bytes]];
SBJsonParser *parser = [[SBJsonParser alloc] init];
id returnVal = [parser objectWithString:string];
if( [returnVal isKindOfClass:[NSDictionary class]]) {
//build string
NSMutableString *alertString = [NSMutableString string];
if( [returnVal objectForKey:@"tuc"] != nil ) {
NSArray *tucs = [returnVal objectForKey:@"tuc"];
for( id tucObject in tucs ) {
if( [tucObject isKindOfClass:[NSDictionary class]] && [tucObject objectForKey:@"phrase"] != nil ) {
id phraseObject = [tucObject objectForKey:@"phrase"];
if( [phraseObject isKindOfClass:[NSDictionary class]] && [phraseObject objectForKey:@"text"] != nil ) {
[alertString appendFormat:@"%@\n", [phraseObject objectForKey:@"text"]];
}
}
}
}
if( alertString.length > 0 ) {
UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"example" message:alertString delegate:nil cancelButtonTitle:@"okay" otherButtonTitles: nil];
[alertView show];
}
}
编辑:SBJsonParser objectWithData:
提供与上面相同的结果。