#iphone #web-services #encoding #core-foundation
#iPhone #веб-сервисы #кодирование #ядро-основа
Вопрос:
Я получаю данные из веб-сервиса и отображаю их на ярлыке. ниже приведен код для этого
cell.lblMainText.text=(NSString *)CFURLCreateStringByReplacingPercentEscapesUsingEncoding(
kCFAllocatorDefault,
(CFStringRef)cell.lblMainText.text,
CFSTR(""), kCFStringEncodingUTF8);
Здесь всякий раз, когда ответ от веб-сервиса звучит так: %%%%%%%%%
тогда он выдает null как
CFURLCreateStringByReplacingPercentEscapesUsingEncoding
удаляет весь %
знак .Итак, я немного запутался, что использовать в этом месте, которое возвращало бы %%%%%
в качестве моей строки.
Комментарии:
1. Используете ли вы Monotouch?
Ответ №1:
Это сделано специально. %% не является допустимой кодировкой для знака%. Вместо этого было бы % — см. http://www.w3schools.com/tags/ref_urlencode.asp
Эта функция вернет NULL при сбое, особенно если она обнаружит недопустимую escape-последовательность процентов, такую как в вашем примере.
Например, это работает правильно
CFStringRef string = CFURLCreateStringByReplacingPercentEscapesUsingEncoding(kCFAllocatorDefault, CFSTR("%%%%%%"), CFSTR(""), kCFStringEncodingUTF8);
Серверу необходимо будет вернуть правильную кодировку, если вы не хотите самостоятельно разбирать эту конкретную строку для этого случая.