除了存储为字符串,数字等的其他一些元数据信息之外,我还需要传输一些二进制数据。我拥有的二进制数据是作为数据库中的blob列存储的图像文件,我想在csv文件中包括blob列,将csv文件存储在文件系统或sftp服务器中,我想它的存储位置无关紧要。

如何将二进制数据另存为csv文件中的另一列?以这种方式传输二进制数据是一个好习惯吗?

最佳答案

Base64

通常(也是正确的)方法是在Base64中编码二进制数据。这将使数据大4:3。

尽管通常将CSV文件视为文本文件,但是您可以将原始二进制数据写入该文件。

然后应将该数据用双引号引起来,并且数据中所有现有的双引号都必须用另一个双引号转义。引用这些字段还将处理二进制数据中的任何换行符,但读者必须对此予以支持。如果读取器知道它正在读取二进制数据(即如果您自己提供读取器),则其中也可能存在空字节,这不成问题。

但是,如果您的数据必须采用某种unicode格式,则可能会出现问题。

因此,通常将原始二进制数据写入csv文件不是一个好习惯,最好使用base64编码。

10-07 14:00
查看更多