Search code examples
iphoneiosipadgoogle-apigoogle-search-api

Error in parsing Google Suggest API in Japanese


When i search "ア" Data From Google Suggest API And my current language in device is English. Then I am getting below response in iPhone device.

<?xml version="1.0"?>
<toplevel>
<CompleteSuggestion>
<suggestion data="&#x30A2;&#x30DE;&#x30BE;&#x30F3;"/>
<num_queries int="69300000"/>
</CompleteSuggestion>
<CompleteSuggestion>
<suggestion data="&#x30A2;&#x30E1;&#x30D6;&#x30ED;"/>
<num_queries int="66400000"/>
</CompleteSuggestion>
</toplevel>

When i search "ア" Data From Google Suggest API And my current language in device is Japanese. Then I am getting below response in iPhone device.

<?xml version="1.0"?>
<toplevel>
<CompleteSuggestion>
<suggestion data="ÉAÉ}É]Éì"/>
<num_queries int="69300000"/>
</CompleteSuggestion>
<CompleteSuggestion>
<suggestion data="ÉAÉÅÉuÉç"/>
<num_queries int="66400000"/>
</CompleteSuggestion>
</toplevel>

For English XML Parsing working fine But for Japanese response it gives me error in Parsing XML And not data will be displayed.

Please suggest any way to solve this.

I am using below code for get response from Google Suggest API.

NSString *strUrl = [NSString stringWithFormat:@"http://google.com/complete/search?output=toolbar&q=ア"];

NSURL *url = [NSURL URLWithString:[strUrl stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]];
NSString * urlData = [NSString stringWithContentsOfURL:url];

// Print the data that get from google suggest api.
NSLog(@"URL Data :: %@", urlData);

Thanks.


Solution

  • I am solved that issue. in my case google api return me a Japanese Characters. So i am change my code as per below:

    NSString *strUrl = [NSString stringWithFormat:@"http://google.com/complete/search?output=toolbar&q=ア"];
    
    NSURL *url = [NSURL URLWithString:[strUrl stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]];
    
    NSError * isError;
    NSString * urlData = [NSString stringWithContentsOfURL:url encoding:NSShiftJISStringEncoding error:&isError];
    
    NSLog(@"URL Data :: %@", urlData);
    

    Thanks.