NSURLRequest with url containing special characters
Asked Answered
B

1

1

I'm having the same problem as: NSURL with special characters

But tried their solution. Can't get my NSURLRequest to work with åöä characters. If the variable "string" contains åöä the request return null. Also tried with NSISOLatin1StringEncoding.

NSString *encodedString = [string stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
NSString *urlString = [NSString stringWithFormat: @"http://suggestqueries.google.com/complete/search?output=firefox&q=%@", encodedString];

NSURL *url = [NSURL URLWithString: urlString];
NSURLRequest *request = [[NSURLRequest alloc] initWithURL:url];

This works: http://suggestqueries.google.com/complete/search?output=firefox&q=%C3%A5%C3%B6%C3%A4 (åöä)

Any ideas?

EDIT: Using the debugger the NSURL looks correct:

string  __NSCFString *  @"åäö"  0x0a77cd60
encodedString   __NSCFString *  @"%C3%A5%C3%A4%C3%B6"   0x0a77fc40
url NSURL * @"http://suggestqueries.google.com/complete/search?output=firefox&q=%C3%A5%C3%A4%C3%B6" 0x0a79d1f0

Solved: The problem was not the NSURL it was how the return NSDATA was interpreted.

Backstop answered 26/6, 2014 at 7:20 Comment(2)
So urlString doesn't look like the URL that works? How does it differ?Beatty
So the URL you produce does work (using Windows/Chrome). Therefore that code is fine I would say and perhaps your issues lie elsewhere.Beatty
F
2

Instead of using

NSURL *url = [NSURL URLWithString: urlString];
NSURLRequest *request = [[NSURLRequest alloc] initWithURL:url];

try using

NSString *encoded = [urlString stringByAddingPercentEncodingWithAllowedCharacters: [NSCharacterSet URLQueryAllowedCharacterSet]];
NSURLRequest* request = [NSURLRequest requestWithURL: [NSURL URLWithString: encoded]];
Finder answered 7/2, 2019 at 14:37 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.