将ascii和二进制数据存储在单个制表符分隔文件中

时间:2009-04-17 17:38:30

标签: mysql

我陷入了这样一种情况,即在制表符分隔文件中存储ascii和二进制数据会更有利。我最初的尝试是可怕的。这甚至值得追求吗?有什么建议?我需要能够轻松地干净地解析生成的制表符分隔文件。下游,这些数据将进入MySQLdb。将二进制数据存储在db中会很好。

4 个答案:

答案 0 :(得分:7)

base64对二进制数据进行编码。也许用base64作为前缀:或者如果有帮助的话。然后它只是一个ASCII文件,您可以轻松地解析它。

答案 1 :(得分:0)

你有没有使用不同的格式而不是制表符分隔?

由于二进制数据可能包含相应的制表符,因此这不是一项简单的任务。

答案 2 :(得分:0)

也许以hex-blob格式存储二进制数据?这至少得到了MySQL工具链的支持。

答案 3 :(得分:0)

虽然我强烈反对这种方法,但只要知道二进制数据的确切长度(以字节为单位),就可以将其直接存储在文件中。然后,您可以从长度值后的制表符开始读取。希望在读取指定的字节长度后,您有另一个制表符或换行符。

一个例子:

ASCII 1 ASCII 2 BinaryLength Blob
this    is horrible 18  ®##]-û¢?#ý¯#d       ­ú2
please  don't   48  Þ­¾ï¥Zߨ}è¨Ùب©×ÚX©©x©†Ú…zŠWG©j ‡­˜zǘǰ˜y|‰}—

但是你应该对Base64进行二进制数据编码。