在不编码的情况下将 NSData 转换为 NSString
Posted
技术标签:
【中文标题】在不编码的情况下将 NSData 转换为 NSString【英文标题】:Converting NSData to NSString without encoding 【发布时间】:2011-10-07 13:24:00 【问题描述】:我正在尝试将图像上传到服务器的数据库中。
我已经做到了
-
使用 UIImageJPEGReprenstation 将图像转换为 nsdata。
使用 base64lib 将 nsdata 转换为 nstring。
这里的问题是我拥有的 nsstring 是 NSASCII 编码的。
因此,默认打开的 ssl 转换器无法读取文件并将其转换为服务器端的正确图像。
所以我需要的是
我从 nsdata 创建的 nsstring 不能使用 nsascii 或 nsutf8 或其他东西进行编码,因为图像数据是二进制的。
或者
在服务器端,我必须将数据从 nsascii 或我在客户端编码的任何方式解码回二进制文件。但这里的问题是我没有任何用于 ascii 解码的内置 api。
【问题讨论】:
这个问题没有意义。您说您对二进制数据进行了 base64 处理,因此您可以将其放入字符串中。 base64 的输出是 ASCII 的一个子集,所以很自然地,字符串最终会被编码为 ASCII。究竟是什么问题?你只需要在服务器上 un-base64 它。 问题是当我在服务器上解码文本数据时,它被正确解码,但我猜二进制数据被双重编码并且没有被正确解码。 【参考方案1】:为什么需要将图像数据转换为字符串数据?你不能只用 jpg 数据(MIME 图像/jpeg)做一个 HTTP POST 吗? This post 告诉你怎么做。
【讨论】:
在服务器端,我需要以 sql 查询字符串的形式发布。所以:(我希望我以这种方式直接将它发布到数据库,但不能这样! 有什么方法可以将 UIImage 转换为简单文件,然后在 NSDATA 中读取文件上的内容,然后对其进行编码?以上是关于在不编码的情况下将 NSData 转换为 NSString的主要内容,如果未能解决你的问题,请参考以下文章
有啥方法可以在不将 CIImage 转换为 UIImage 或 CGImage 的情况下将 CIImage 转换为 NSData?
PHP:在不知道原始字符集的情况下将任何字符串转换为 UTF-8,或者至少尝试一下