Данные BLOB заменяются пробелом - PullRequest
0 голосов
/ 10 октября 2011

У меня есть приложение для iphone, которое преобразует изображение в NSData, а затем преобразует в строку в кодировке base64.

Когда эта кодированная строка отправляется на сервер в базе данных сервера, при сохранении на сервере '+' преобразуется в'пробел', и поэтому декодер не работает должным образом.

Я думаю, проблема в кодировке таблицы по умолчанию в базе данных.В настоящее время он латинский, я попытался изменить его на UTF8, но проблема все еще не устранена.

Любая другая кодировка, пожалуйста, помогите

1 Ответ

2 голосов
/ 10 октября 2011

Конечно - это не имеет ничего общего с кодированием. Это формат параметров POST и GET, который создает конфликт с base64. В http://en.wikipedia.org/wiki/Base64#Variants_summary_table вы видите альтернативы, которые предназначены для работы base64 с URL и т. Д.

Один из этих вариантов - «Base64 с URL-адресом и безопасным алфавитом имени файла ( RFC 4648 'base64url' кодировка)», который заменяет + на - и / на _ .

Другой альтернативой может быть замена символов-нарушителей +/= их соответствующими шестнадцатеричными представлениями на %xx, но это излишне удлиняет данные.

...