iphone - открыть URL с японскими символами

В моем приложении требуется использовать метод openURL UIApplication для запуска браузера со следующим URL-адресом:

http://192.168.100.80/1003/images/test/いうydさdfghjk-320x160. png

Вышеупомянутая строка хранится в NSString. Когда я передаю вышеуказанный URL-адрес в качестве параметра для openURL, он говорит, что страница не найдена, и я заметил, что URL-адрес в адресной строке не состоит из японских символов. Как я могу показать вышеуказанный URL-адрес в сафари?


person Satyam    schedule 06.01.2011    source источник


Ответы (1)


Вам нужно экранировать японские символы, используя кодировку UTF8, а затем заменить их:

    NSString *query = @"ファイル";
    NSString *encodedQuery = [query stringByAddingPercentEscapesUsingEncoding: NSUTF8StringEncoding];
    NSString *urlString = [NSString stringWithFormat:@"http://ja.wikipedia.org/wiki/%@:East_Asian_Cultural_Sphere.png", encodedQuery];
    [[UIApplication sharedApplication] openURL:[NSURL URLWithString: urlString]];
person Max    schedule 06.02.2011
comment
Привет, спасибо за обновление. Я уже за решение для этого. - person Satyam; 06.02.2011
comment
@Satyam svv, если у вас уже было решение, почему вы не ответили на свой вопрос ?? ;) - person makdad; 07.02.2011
comment
Я забыл, что разместил здесь запрос. В противном случае я должен был обновить. - person Satyam; 07.02.2011
comment
Но это можно сделать только тогда, когда мы знаем, что это будут японские символы... в моем приложении я не знаю, какой будет URL-адрес на испанском языке... так что же тогда можно сделать...? - person mAc; 14.11.2011
comment
@Max: Спасибо, на самом деле это для фиксированных символов, но я хотел для любых динамических символов .... кстати, я узнал об этом здесь: - stackoverflow.com/questions/8120069/.. . - person mAc; 14.11.2011
comment
@mAc что означают фиксированные символы и динамические символы? Строка NSString *query = @ファイル; было просто для примера. В реальной жизни вы получаете строку из любого места, где хотите. - person Max; 14.11.2011