Если вам действительно нужно преобразовать ваши данные в строку, используйте кодировку Unicode, так как Unicode предоставляет кодовую точку для каждого возможного символа. Наиболее распространенная кодировка Unicode, очевидно, UTF-8 (NSUTF8StringEncoding
)
Но если это произвольные данные, которые необходимо передать, и эти данные не представляют собой строку, не преобразуйте ее в строку, независимо от кодировки . Это приведет к проблемам (например, если ваши данные содержат нулевой байт, они будут считаться ограничителем строки и т. Д.)
Вместо этого, если вам нужно перенести некоторые необработанные данные на ваш сервер, подумайте:
- Использование POST вместо GET, если возможно
- Кодируйте ваши данные в Base64 , так что вы гарантируете, что не потеряете никакие данные при преобразовании или во время транспортировки с вашего клиента на ваш сервер (или, что еще хуже, повредите ваши данные, преобразовав их в произвольный кодирование)
- Если возможно на вашем сервере (если он ваш и у вас есть доступ к коду), декодируйте строку в кодировке Base64 обратно в необработанные данные при получении и сохраняйте ее в поле BLOB вместо в поле VARCHAR или BIGTEXT.
- Если вы не можете получить доступ к коду сервера и не можете сохранить его в поле TEXT / VARCHAR в вашей базе данных, вы все равно можете сохранить строку в кодировке Base64, представляющую ваши данные, непосредственно в вашей базе данных (и декодировать ее). когда вы получите его из БД позже).
См. Google для кодировки Base64 в Objective C, есть много ссылок на широко используемую категорию NSString + Base64.