iphone - 将西里尔字母作为 URL 参数传递

标签 iphone urlencode nsurlrequest

我需要在 iPhone 应用程序的 URL 中传递西里尔字符作为参数。示例 URL 如下所示:

http://www.mysite.com/script.php?message =страшная

当我在浏览器中使用此 URL 时,它会返回正确的结果。但是,在我的应用程序中,不喜欢西里尔字母,最终我在 didFailWithError 代码中得到了一个“错误的网址”。

我在浏览器中尝试了几种编码来解决这个问题,但没有成功。有没有办法通过 iPhone 应用程序实际发送上面的确切 URL 示例?我正在使用的代码片段是:

selectedWord = @"страшная";
NSString *requestURL = [NSString stringWithFormat:@"http://www.mysite.com/script.php?message=%@", selectedWord];
NSLog (requestURL);
NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:requestURL]];

[[NSURLConnection alloc] initWithRequest:request delegate:self];

在上面的代码中,我已将西里尔字母硬编码在 NSString *selectedWord 中以进行调试。在实际应用程序中,它将根据用户输入动态变化。

我尝试了更复杂的POST,认为我可以将西里尔字母作为数据而不是文本传递,但要么我做错了,要么它不起作用。

任何有关编码的示例我都可以在浏览器中尝试,然后在应用程序中实现将会有所帮助。我意识到西里尔字母在 NSURL 中被拒绝,但我希望有一种方法可以使用不同的代码或编码来解决它。

最佳答案

如果将其更改为:

encodedSelectedWord = [selectedWord stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
NSString *requestURL = [NSString stringWithFormat:@"http://www.mysite.com/script.php?message=%@", encodedSelectedWord];

documentation link

关于iphone - 将西里尔字母作为 URL 参数传递,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3911919/

相关文章:

xcode - 如何将标题信息插入 MPMoviePlayerController url?

iphone - iOS 4.2 - 通话后返回应用程序

iphone - UIImagePickerController 不适用于 iOS 3 但适用于 iOS 4...向后兼容性问题

iphone - 从 plist 到 UIPickerView

iphone - UIButton 背景图片没有改变

java - URL编码任意字符

java - 编码 URL 查询参数

angular - 在 URLEncoded Http Post 请求中保留 +(加号)

objective-c - NSURLConnection 收到错误时的不同结果

swift - Xcode8 beta 6 - 带有 completionHandler 参数的 URLSession 不起作用