stackoverflowで見つけた方法で、うまく動作しました。
以下のように関数化しています。
- (NSString*) decodeFromPercentEscapeString:(NSString *) string {
return (__bridge_transfer NSString *) CFURLCreateStringByReplacingPercentEscapesUsingEncoding(NULL, (__bridge CFStringRef) string, CFSTR(""), kCFStringEncodingUTF8);
}