在不编码的情况下将 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?

上传图片而不转换 NSData

PHP:在不知道原始字符集的情况下将任何字符串转换为 UTF-8,或者至少尝试一下

是否可以在不重新编码的情况下将立体声合并/缩混为单声道(m4a 或 opus)

如何在不丢失信息的情况下将因子转换为整数\数字?

如何在不转换为整数的情况下将 null 转换为 int?