0

Всякий раз, когда URL содержит японские параметры, функция requestWithURL возвращает null.NSMUtableURLRequest requestWithURL возвращает null, если URL содержит японские параметры

urlString = https://translate.google.co.in/#ja/en/はははは 
NSMutableURLRequest *Request= [NSMutableURLRequest requestWithURL:[NSURL URLWithString:urlString]]; 

Всякий раз, когда параметры включают EN, requestWithURL работает нормально.

+0

Я попробовал ваш код (быстро). Сам URL-адрес становится 'nil', когда вы создаете его из этой строки. Запрос приходит как «nil» просто потому, что вы начинаете с «nil» URL. –

+0

Я не очень разбираюсь в классе «NSURL», но, возможно, вам нужно как-то дезинфицировать вашу строку, прежде чем пытаться создать URL-адрес из символов, отличных от ascii. Не уверен, но полное ознакомление с документами может дать вам ключ ... –

+0

Я нашел ваш ответ здесь: http://stackoverflow.com/questions/2125230/nsurl-urlwithstring-is-null-with-non-english -accented-characters –

ответ

1

Вы должны кодировать свой путь, так как он содержит символы, не разрешенные в URL:

NSString *base = @"https://translate.google.co.in"; 
NSString *path = @"/#ja/en/はははは"; 

NSURLComponents *urlComponents = [NSURLComponents componentsWithString:base]; 
urlComponents.path = path; 

NSMutableURLRequest *request= [NSMutableURLRequest requestWithURL:urlComponents.URL]; 

Обратите внимание, что запрос еще не даст вам желаемого результата, так как в браузере вы делаете запрос до https://translate.google.co.in/ с ja/en/はははは как fragment identifier for JavaScript, в то время как в коде вы делаете запрос к https://translate.google.co.in/# ..., которого не существует.