什么是纯文本数据库文件的最佳分隔符/定界符?
我考虑使用 |、,、、; 等字符,但它们似乎都可能在附近的条目具有特殊字符时出现问题。
因此,有经验的数据库用户,你建议使用哪个分隔符字符?
在 US-ASCII 中,有几个分隔符 字符,十六进制代码为 1c
、1d
、1e
和 1f
。纯文本中不应包含它们。
1c FS ␜ ^\ File Separator
1d GS ␝ ^] Group Separator
1e RS ␞ ^^ Record Separator
1f US ␟ ^_ Unit Separator
~
),或者使用高ASCII字符。
无论哪种方式,如果它有机会混入您的数据中,您都需要在写入纯文本文件之前对其进行转义。\|
和\\
作为转义符),但波浪号与其他任何字符一样好用。 - paxdiablo我认为最好的连接字符串的方法是使用三个樱桃符号“@@@”。
实际上,这取决于您要分离的数据类型,我们需要一种分隔符来处理机器事件数据,有几个提议:
=)
或者 ^_^
。
我们选择了 ^_^
,因为它在测试样本数量上实际有效,并且看起来很可爱!
)
作为文件名的分隔符:zsh:在文件名中使用分隔符时解析错误附近的)
。 - alper我通常喜欢使用像"\u0001"这样的不可打印字符,例如在大多数Azure Data Analytics U-SQL脚本中,我将其用作列分隔符。这是基于您可以使用多字符自定义分隔符的假定。
个人而言,我喜欢使用“«”作为CSV文件中分隔数据的定界符,我个人认为我从未发现过自然存在的“«”和“»”,所以这是我的建议。
«
和»
)在多种语言中用作“引号”,最常见的是在法语和意大利语中使用。 - Juha Untinen如果您无法控制输入的数据,请不要使用纯文本数据库。这里没有普遍正确的答案。没有上下文或限制,这是一个错误的问题。
换句话说: 如果我说我只接受小写字母作为数据,我可以使用任何其他符号作为分隔符。甚至,比如数字9,我也没问题。除了小写字符之外,没有任何符号比其他符号更好。
相反地,如果我说我可以接受任何字符,那么我就没有任何字符可以用作分隔符了,我只能留下一个非常抱歉的数据库,只能存储单个值。
如果您必须费尽心思将您的数据库转换成纯文本格式,那么您可能需要一个二进制数据库。您看过sqlite吗?它非常容易使用,在许多情况下都可用,并且比纯文本数据库具有许多优点。