Artifact 9f4252224152c580be654a5151cc903b8277d8645820bd4314a3fc406f2b6b0c:
- File
src/OFString+URLEncoding.h
— part of check-in
[516517deb3]
at
2016-08-21 14:00:20
on branch trunk
— OFURL: Do not URL decode and reencode parts
URL decoding and reencoding is not lossless: For example, if the query
was foo=bar&qux=foo%25bar, it will be decoded to foo=bar&qux=foo&bar and
then reencoded to foo=bar%25qux=foo%25bar, which is a different thing.The only way to solve this is to let the application handle the URL
decoding and encoding according to its own rules, as those might be
different depending on the application. (user: js, size: 1351) [annotate] [blame] [check-ins using]
/* * Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016 * Jonathan Schleifer <js@heap.zone> * * All rights reserved. * * This file is part of ObjFW. It may be distributed under the terms of the * Q Public License 1.0, which can be found in the file LICENSE.QPL included in * the packaging of this file. * * Alternatively, it may be distributed under the terms of the GNU General * Public License, either version 2 or 3, which can be found in the file * LICENSE.GPLv2 or LICENSE.GPLv3 respectively included in the packaging of this * file. */ #import "OFString.h" OF_ASSUME_NONNULL_BEGIN #ifdef __cplusplus extern "C" { #endif extern int _OFString_URLEncoding_reference; #ifdef __cplusplus } #endif @interface OFString (URLEncoding) /*! * @brief Encodes a string for use in a URL. * * @return A new autoreleased string */ - (OFString*)stringByURLEncoding; /*! * @brief Encodes a string for use in a URL, but does not escape the specified * ignored characters. * * @param allowed A C string of characters that should not be escaped * * @return A new autoreleased string */ - (OFString*)stringByURLEncodingWithAllowedCharacters: (const char*)allowed; /*! * @brief Decodes a string used in a URL. * * @return A new autoreleased string */ - (OFString*)stringByURLDecoding; @end OF_ASSUME_NONNULL_END