url
を取得して、より多くの読み取り可能形式に変換したい。たとえば、次のリンクがあります。
http://en.wikipedia.org/wiki/S%C3%A1ndor_Font
不要な部分を取り除き、"S%C3%A1ndor_Font"
をNSString
として残しました。これを"Sándor Font"
(実際にはどうあるべきか)に変換する方法はありますか。特殊文字のすべての組み合わせを入力し、文字列の各部分を置き換える必要はありませんか?
これをどのように使用したいかを示すために、次のサンプルコードを書きました。
//request is a NSURLRequest with a url of http://en.wikipedia.org/wiki/S%C3%A1ndor_Font
NSRange range = [[request.URL absoluteString] rangeOfString:@"/wiki/"];
NSString *substring = [[[request.URL absoluteString] substringFromIndex:NSMaxRange(range)] stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]];
//ArticleTitleLabel is a UILabel
self.ArticleTitleLabel.text = substring;
結局、ラベルに"Sándor Font"
ではなく"S%C3%A1ndor_Font"
と書いてほしい。ありがとう!
NSStringの- (NSString *)stringByReplacingPercentEscapesUsingEncoding:(NSStringEncoding)encoding;
が必要です。
つまり.
[substring stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
IOS10/Swift 3の場合:
substring.removingPercentEncoding
IOS9/Swift 2.3の場合:
substring.stringByRemovingPercentEncoding
Swift
str.removingPercentEncoding
Swift 4.2(Linuxサポート)
let percentString = "hello%20world"
let string = NSString(string: percentString).removingPercentEncoding!
print(string) // hello world