Мне нужно преобразовать строку base64 в строку, закодированную в URL-адресе base64,
то же самое нравится преобразование на этом сайте: https://www.urlencoder.org/.
Мой код:
Код: Выделить всё
extension UIImage {
func toBase64URLEncodedString() -> String? {
guard let imageData = self.jpegData(compressionQuality: 1) else {
return nil
}
var base64String = imageData.base64EncodedString()
let allowedCharacterSet = CharacterSet(charactersIn: "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_.~")
// URL encode the Base64 string
return base64String.addingPercentEncoding(withAllowedCharacters: allowedCharacterSet)
}
}
Моя исходная строка base64 (более 100 строк):

Мой вывод: (Возвращается только 16 строк)

Дополнительная информация:
Наша серверная система принимает только строки изображений в формате Base64, закодированные в URL. Если я их не закодирую, они будут отклонены.
Я понял, как это сделать в Android одной строкой кода, используя
Код: Выделить всё
String urlEncodedString = URLEncoder.encode(newBase64String, "UTF-8");
Подробнее здесь: https://stackoverflow.com/questions/785 ... g-in-swift