首页 > 解决方案 > 在 CSV 文件中传输二进制数据(图像等)

问题描述

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

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

标签: filecsvintegrationbinary-datadata-migration

解决方案


Base64

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

虽然CSV文件通常被认为是文本文件,但您可以将原始二进制数据写入文件。

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

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

所以,一般来说,将原始二进制数据写入 csv 文件并不是一个好习惯,最好使用base64编码。


推荐阅读